输出输入流同时打开,文本内容消失问题
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.(代码片段