這里簡單的實現了對文件添加內容時不改變原來的內容的情況下,在原內容基礎上進行添加內容:
思路:先輸入再輸出,用變量去接收文件的原內容
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(); } } }