往文件中按行寫入數據


如下代碼是一個Java小程序,用於往文件寫入數據。每次運行該程序,一個新的文件被創建,之前舊的文件被刪除;這與往文件追加內容是有區別的。

    public static void writeFile1() throws IOException {
        File fout = new File("out.txt");
        FileOutputStream fos = new FileOutputStream(fout);
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
        for (int i = 0; i < 10; i++) {
            bw.write("something");
            bw.newLine();
        }
        bw.close();
    }

這個例子使用了FileOutputStream,除了該類你還可以使用FileWriter或者PrintWriter,對於文本操作,通常是足夠的;

使用FileWriter:

    public static void writeFile2() throws IOException {
        FileWriter fw = new FileWriter("out.txt");
        for (int i = 0; i < 10; i++) {
            fw.write("something");
        }
        fw.close();
    }

使用PrintWriter:

    public static void writeFile3() throws IOException {
        PrintWriter pw = new PrintWriter(new FileWriter("out.txt"));
        for (int i = 0; i < 10; i++) {
            pw.write("something");
        }
        pw.close();
    }

使用OutputStreamWriter:

    public static void writeFile4() throws IOException {
        File fout = new File("out.txt");
        FileOutputStream fos = new FileOutputStream(fout);
        OutputStreamWriter osw = new OutputStreamWriter(fos);
        for (int i = 0; i < 10; i++) {
            osw.write("something");
        }
        osw.close();
    }

Java文檔中的相關說明:

對於往文件寫入字符數據,FileWriter是一個非常方便的類,這個類的構造方法使用了默認的字符編碼和字節緩沖區大小。如果要自己指定這些值,可以先在 FileOutputStream 上構造一個 OutputStreamWriter。

PrintWriter是向文本輸出流打印對象的格式化表示形式,該類實現了PrintStream中的所有print方法,它不包含用於寫入原始字節的方法,對於這些字節,程序應該使用未編碼的字節流進行寫入。

主要的區別是PrintWriter提供了一些額外的方法用於格式化輸出,如println、printf。另外如果發生任何I/O異常,FileWriter會拋出IOException,二PrintWriter不會拋出IOException,相反,它會設置一個boolean標志,該標志可以通過調用checkError()方法獲取。PrintWriter在每次寫入數據后會自動調用flush方法,然而對於FileWriter,調用者需要自己特別留意flush方法的調用。

 

譯文鏈接:http://www.programcreek.com/2011/03/java-write-to-a-file-code-example/


免責聲明!

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



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