永发信息网

java 输出流

答案:3  悬赏:80  手机版
解决时间 2021-02-02 23:44
  • 提问者网友:辞取
  • 2021-02-02 14:42
下面这个程序,如何让它不覆盖以前的,而是追加到以前的后面呢?,然后在输出

import java.io.*;
//创建一个文件类对象f
//创建一个文件输出流对象fos
//使用循环语句往f中写入数据
public class File5 {

public static void main(String[] args)throws Exception {
File f = new File("E:\\filetest\\file.txt");
FileOutputStream fos = new FileOutputStream(f);
for(int i='a';i<'z';i++){
fos.write(i);
}
fos.close();

}

}
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-02-02 16:07
在创建FileOutputStream的时候,加一个boolean参数,如下
FileOutputStream fos = new FileOutputStream(f,true);
加上true表示,在文件尾追加内容
没有这个参数默认就是覆盖原来的内容,从文件的开始进行写入
全部回答
  • 1楼网友:老鼠爱大米
  • 2021-02-02 17:48
用循环才能写多行啊! 你这么创建printwriter,运行一次写一次,当然是覆盖的。 如果不循环,还想在文件后追加,用下面的代码创建printwriter对象。其中,fileoutputstream的构造法的第2个参数是标示是否append。 printwriter writer = new printwriter(new fileoutputstream("c:\\abc.txt", true));
  • 2楼网友:纵马山川剑自提
  • 2021-02-02 16:21
用FileOutputStream的另一个构造方法 FileOutputStream(File file, boolean append) append 为true表示将字节写入文件末尾处,为false表示写入文件开始处。 也就是有append这个构造方法是追加到原文用的。用FileOutputStream(File file)这个构造方法是会覆盖原文的。 public class File5 { public static void main(String[] args)throws Exception { File f = new File("E:\\filetest\\file.txt",true); FileOutputStream fos = new FileOutputStream(f); for(int i='a';i<'z';i++){ fos.write(i); } fos.close(); } }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯