输入输出流的一些细节问题

Posted 周娟娟

tags:

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

1、写文本文件


 

  第一个参数:写入文件需要指定文件名,如果不指定的文件不存在,会自动创建文件;如果存在,会自动覆盖以前的内容。

  第二个参数:指定文件是否以追加的方式写入文件。

io.FileWriter.FileWriter(String fileName, boolean append)
FileWriter fw = null;
try {
    fw = new FileWriter("E:/hello.txt", true);
  char[] c = {‘a‘, ‘b‘, ‘c‘, ‘d‘}; fw.write(
c); } catch (IOException e) { e.printStackTrace(); } finally { if (fw != null) { try { fw.close(); } catch (IOException e) { e.printStackTrace(); } } }

结果:
 abcd

 

1、解决write(char[] c)写入到文件末尾时重复写入的问题


 

  可以使用如下方法解决这个问题。读取了多少字节就写入多少个字节。

write(char[] c, int start, int end);

代码示例:

char[] cs = new char[1024]; // 创建缓存数组
  int length = -1; 
  while ((length = fr.read(cs)) != -1) {
  fw.write(cs, 0, length);
}

 

以上是关于输入输出流的一些细节问题的主要内容,如果未能解决你的问题,请参考以下文章

字节流与字符流的区别详解

字节流与字符流的区别详解

字节流与字符流的区别详解

具有并发输入/输出流的 Java 进程

片段(Java) | 机试题+算法思路+考点+代码解析 2023

关于IO流的一些总结