如何利用輸入輸出流往文件中不斷添加內容


這里簡單的實現了對文件添加內容時不改變原來的內容的情況下,在原內容基礎上進行添加內容:

思路:先輸入再輸出,用變量去接收文件的原內容

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();
        }
        

    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM