16130130321 发表于 2018-11-23 21:12:00

求助!关于Java的I/O流的缓冲区问题

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()的功能,感觉还是不太理解,这个时候不是已经写入文件了吗,从文件里不可以直接读吗?

水柔炎 发表于 2018-12-3 13:53:40

可以换个思路去写一个,用writer和read字节流去写。
页: [1]
查看完整版本: 求助!关于Java的I/O流的缓冲区问题