Java快读快写
Java相比较于CPP封装了更多处理输入输出的方法,但是做算法题一般用不到,所以感觉CPP做题还是比Java清爽很多的…简单记录一下Java的快速读写吧。
- 在使用StreamTokenizer类时,我们要导入io包,它是io包中的类
- 在使用这个类时,函数要抛出IOException异常(throws IOException)
- 每一次读入之前都要用nextToken()方法获取下一个数据
- 读取数据的方法,sval方法读取字符串类型(以空格或者换行分隔),nval方法读取数字类型数据。读取字符串类型的数据时,一次只能读一个字符串,读取数字类型的数据时,默认为double类型
- java.io包的PrintWriter类可用于以通常可读的形式(文本)写入输出数据,它继承了抽象类Writer。
- 与其他写入器不同,PrintWriter将原始数据(int、float、char等)转换为文本格式。然后它将格式化的数据写入到写入器。
- PrintWriter类不会抛出任何输入/输出异常。相反,我们需要使用checkError()方法来查找其中的任何错误。
读数字
import java.io.*;
import java.util.*;
public class Main {
static StreamTokenizer in = new StreamTokenizer(new BufferedReader(new InputStreamReader(System.in)));
static PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
public static void main(String args[]) throws IOException {
int a = nextInt(); // 读int
out.print(a); // 不换行输出int类型的a
double b = nextDouble(); // 读double
out.println(b); // 换行输出double类型的b
long c = nextLong(); // 读long
out.printf("%d", c); // 格式化输出long类型的c
out.flush(); // 关闭输出流
}
private static int nextInt() throws IOException {
in.nextToken();
return (int)in.nval;
}
private static double nextDouble() throws IOException {
in.nextToken();
return in.nval;
}
private static long nextLong() throws IOException {
in.nextToken();
return (long)in.nval;
}
}
读字符串
import java.io.*;
import java.util.*;
public class Main {
static BufferedReader re = new BufferedReader(new InputStreamReader(System.in));
public static void main(String args[]) throws IOException {
String s = re.readLine();
System.out.println(s);
}
}
总结很到位。强推