基础知识
BufferedReader 和 BufferedWriter 分别继承Reader类和Writer类,具有内部缓存机制,特点是可以以行为单位进行输入输出。
输入时使用newLine()方法可以写入一个行分隔符(就是换行啦)。
使用BufferedWriter类的Write()方法时,数据并没有立刻写入文件,而是先进入缓存区。若要立刻存入文件,用调用flush()方法。(用例看代码块)
代码块
```java
public class test {
public static void main(String[] args) throws IOException {
//创建文件
File file = new File("G:\\file.txt");
if(!file.exists()){
file.createNewFile();
System.out.println(file.getName()+"文件已创建!");
}
try{
Scanner in = new Scanner(System.in);
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String s = new String();
//从控制台输入数据并写入文件
while(true){
s = in.nextLine();
if (s.equals("")){
break;
}
bw.write(s);
bw.flush();//刷新将缓存区的数据写入文件
bw.newLine();//写入一个行分隔符
}
//读文件
char []byt = new char[1024];//创建一个字符数组作为缓存区
int len = br.read(byt);
System.out.println(new String(byt,0,len));
in.close();
bw.close();
br.close();
}catch(Exception E){
E.printStackTrace();
}
}
}
## 运行结果
![在这里插入图片描述](https://img-blog.csdnimg.cn/5abdaca63d764e75ba9ed2785651f188.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAamlhaGFpdGFvMDE=,size_20,color_FFFFFF,t_70,g_se,x_16)
![在这里插入图片描述](https://img-blog.csdnimg.cn/2b93a0a3e52646b8ab8c2eb389e108ef.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAamlhaGFpdGFvMDE=,size_17,color_FFFFFF,t_70,g_se,x_16)