《一》java基础语法--1.使用BufferedReader和BufferedWriter实现快速输入输出(推荐)

198 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

1.使用BufferedReader和BufferedWriter实现快速输入输出(推荐)

BufferedReader和BufferedWriter都在java.io.*包内。

BufferedReader

如果想要BufferedReader读取直到文件流为空结束,则有

 String str = null;
 while((str = in.readLine().split(" ")) != null);
 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
 ​
 成员方法
 方法                                                   描述
 int read()                                            读取单个字符。
 int read(char[] cbuf, int off, int len)     将字符读入数组的某一部分。
 String readLine()                                读取一个文本行。
 long skip(long n)                                 跳过字符。
 boolean ready()                                  判断此流是否已准备好被读取。
 void close()                                         关闭该流并释放与之关联的所有资源。
 void mark(int readAheadLimit)           标记流中的当前位置。
 boolean markSupported()                   判断此流是否支持 mark() 操作(它一定支持)。
 void reset()                                          将流重置到最新的标记。
 ​
 主要使用read() 和 readLine()
 ​
 ​
 String s = in.read() // 读入一个字符 可读入空格回车 但不抛弃回车
 String s1 = in.readLine(); // 读入一行 可读入空格可读入回车 但会将回车抛弃
 string s2[] = in.readLine().Split(" "); // 使用Split通过空格分割读入的一行字符串,存在s2中

需要注意的是 在windows中按一下回车键 一共有两个字符 "\n\r" 而read()只能读取一个字符所以如要要用read来达到吸收回车的目的,需要用两个read(); 如果用readLine()的话会将"\n\r"全部吸收 , 所以只需要一个readLine()来吸收回车。

BufferedWriter(这里我仍然使用System.out.print等方法,因为不熟悉BufferedWriter的内部结构)

 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.in));
 ​

主要使用 BufferedWriter类中的 write() 类进行输出。 当数据量大的时候一定要使用这个类进行输出,谨记!

需要注意的是 write() 不能直接输出int类型, 因为write(int a) 会输出其对应的ASCii码的字符 ,比如输出 65

如果需要输出int类型数据,先转换为字符串形式进行输出。(加+或者使用Integer.toString(a))