如何利用输入输出流往文件中不断添加内容
这里简单的实现了对文件添加内容时不改变原来的内容的情况下,在原内容基础上进行添加内容:
思路:先输入再输出,用变量去接收文件的原内容
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("\r\n"+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 ="\r\n用新的构造方法追加内容"; out.write(str.getBytes()); out.close(); } catch (Exception e) { // TODO 自动生成的 catch 块 e.printStackTrace(); } } }