import java.io.*;
public class third_1
{
public static void main(String[] args)
{
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter writer = new BufferedWriter(new FileWriter("mytext1.txt"));
BufferedReader reader = new BufferedReader(new FileReader("mytext1.txt"));
String inputLine;
System.out.println("请开始输入:");
while((inputLine = in.readLine()) != null)
{
writer.write(inputLine);
writer.newLine();
}
in.close();
System.out.println("文件中写入的数据为:");
String outputLine;
writer.flush(); //刷新此输出流并强制将所有缓冲的输出字节被写出
while((outputLine = reader.readLine()) != null)
{
System.out.println(outputLine);
}
in.close();
writer.close();
reader.close();
}
catch(FileNotFoundException e)
{
System.err.println("cannot open in.txt");
}
catch(IOException e)
{
System.out.println("IOException: " + e);
}
}
}
该程序要实现的功能
代码这样写时可是实现所要求的的功能,但是在将writer.flush()注释掉以后,输入的内容还可以写到文件中,但是却读不出来,自己查了一下flush()的功能,感觉还是不太理解,这个时候不是已经写入文件了吗,从文件里不可以直接读吗?
第一次玩论坛,不知道回答的帖子去哪了,再回一次吧。
flush的作用是将缓存区的数据写入内存,close是关闭流,但在关闭前会将缓存区的内容写入内存,所以就造成了你看到的现象,数据明明写入了文件为什么查不到呢。只要你输入流读取的语句在输出流的flush或close方法后你才能读到内存中的数据
|