最近在复习Java,感觉自己IO部分掌握的不是很好。就自己写了个小代码,自己记录一下。
问题很简单:将控制台输入保存到文件中,再将文件中的内容读取出来进行输出。
先总结几个要点吧。
(1)写入String对象要使用FileWriter;(FileInputStream是写字节的,当然也能写String,只是需要转换一下);
(2)创建FileWriter对象时,参数中记得加上True,来确保之前写入的内容不会被覆盖
(3)写入时,每写入一行记得刷新一下(writer对象的flush()函数),确保成功写入。
(4)FileReader对象的read方法返回值是相应字符的AscII码,如果到了结尾会返回-1;所以读取文件时要使用 readline()方法!
(5)任务结束后记得关闭两个流对象!
import java.util.*;
import java.io.*;
public class IO2 {
public static void main(String[] args) {
File file= new File("I02.txt");
try {
FileWriter writer = new FileWriter(file,true);
Scanner scanner=new Scanner(System.in);
while(true){
String line=scanner.nextLine();
if (line.equals("|")){break;}
writer.write(line);
writer.write("\n");
writer.flush();
}
writer.close();
BufferedReader reader=new BufferedReader(new FileReader(file));
while (true){
String line= reader.readLine();
if(line.isEmpty()){break;}
System.out.println(line);
}
}catch (Exception e){e.printStackTrace();}
}
}