如何利用输入输出流往文件中不断添加内容

这里简单的实现了对文件添加内容时不改变原来的内容的情况下,在原内容基础上进行添加内容:

思路:先输入再输出,用变量去接收文件的原内容

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class Test04 {

    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String str=sc.nextLine();                      //输入内容
        try {
            File file =new File("d:/test.txt");                 //创建文件
            if(!file.exists()){
                file.createNewFile();
            }
            FileInputStream in=new FileInputStream("d:/test.txt");         //输入流
            byte[] b=new byte[1024];                                       //byte数组——容器
            int i;                                                         //长度
            StringBuilder wenzi=new StringBuilder();                                               //字符串变量接收文件内容
            while((i=in.read(b))>0){                    //循环读取
                wenzi.append(new String(b,0,i));                //获得文件中的内容
            }
            in.close();
            wenzi.append("
"+str);                     //创建新的内容=之前的内容+新输入的内容
            FileOutputStream out =new FileOutputStream("d:/test.txt");              //输出流
            byte[] newb=wenzi.toString().getBytes();
            out.write(newb);
            out.close();            
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

 java提供了追加往文件中写入内容的方法:

public class Zhuijiaxieru {

    public static void main(String[] args) {
        // TODO 自动生成的方法存根
        String filename="d:/test.txt";
        try {
            FileOutputStream out =new FileOutputStream(filename,true);
            String str ="
用新的构造方法追加内容";
            out.write(str.getBytes());
            out.close();
        } catch (Exception e) {
            // TODO 自动生成的 catch 块
            e.printStackTrace();
        }
        

    }

}
原文地址:https://www.cnblogs.com/jingzhenhua/p/5910758.html