输出输入流同时打开,文本内容消失问题

Posted The more confused, the more ef

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了输出输入流同时打开,文本内容消失问题相关的知识,希望对你有一定的参考价值。

对某个文本文件同时打开输出及输入流时,如果你使用API不慎,会发现输出流输出为空,原因如下:

public static void main(String[] args) {
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            File file = new File("D://test.txt");

            fis = new FileInputStream(file);
            /**
             * new FileOutputStream(file)
             * new FileOutputStream(file, true)   追加模式
             * 如果不选择追加模式,就会清空原文件内容,类似的有FileWriter(内部维护的是FileOutputStream)等。。。
             */
            fos = new FileOutputStream(file);

            byte[] b = new byte[1024];
            int index = 0;
            while ((index = fis.read(b)) >= 0) {
                System.out.println(new String(b, 0, index));
            }
            //  "\r\n" 为换行符
            fos.write("\r\ntest".getBytes());
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (fis != null && fos != null) {
                    fos.close();
                    fis.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    }

 

以上是关于输出输入流同时打开,文本内容消失问题的主要内容,如果未能解决你的问题,请参考以下文章

使用java的输入,输出流将一个文本文件的内容按行读出,每读一行就顺序添加行号,并写入到另一个文件

使用java的输入输出流将一个文本文件的内容按行读取,每读一行就顺序添加行号,并写入到另一个文件中

java缓冲字符字节输入输出流:java.io.BufferedReaderjava.io.BufferedWriterjava.io.BufferedInputStreamjava.io.(代码片段

焦点在 EditText 上时 ViewPager2 片段内容消失

IO流内容整理

是否可以动态编译和执行 C# 代码片段?