Java讀取txt文件和寫入txt文件

package com.nickwong.code;

import java.io.*;

/**
 * Created by Nickwong on 31/07/2018.
 * 根據1-8樓的建議,優化了代碼
 */
public class ReadTxt {

    public static void main(String args[]) {
        readFile();
        writeFile();
    }

    /**
     * 讀入TXT文件
     */
    public static void readFile() {
        String pathname = "input.txt"; // 絕對路徑或相對路徑均可以,寫入文件時演示相對路徑,讀取以上路徑的input.txt文件
        //防止文件創建或讀取失敗,用catch捕捉錯誤並打印,也能夠throw;
        //不關閉文件會致使資源的泄露,讀寫文件都同理
        //Java7的try-with-resources能夠優雅關閉文件,異常時自動關閉文件;詳細解讀https://stackoverflow.com/a/12665271
        try (FileReader reader = new FileReader(pathname);
             BufferedReader br = new BufferedReader(reader) // 創建一個對象,它把文件內容轉成計算機能讀懂的語言
        ) {
            String line;
            //網友推薦更加簡潔的寫法
            while ((line = br.readLine()) != null) {
                // 一次讀入一行數據
                System.out.println(line);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    /**
     * 寫入TXT文件
     */
    public static void writeFile() {
        try {
            File writeName = new File("output.txt"); // 相對路徑,若是沒有則要創建一個新的output.txt文件
            writeName.createNewFile(); // 建立新文件,有同名的文件的話直接覆蓋
            try (FileWriter writer = new FileWriter(writeName);
                 BufferedWriter out = new BufferedWriter(writer)
            ) {
                out.write("我會寫入文件啦1\r\n"); // \r\n即爲換行
                out.write("我會寫入文件啦2\r\n"); // \r\n即爲換行
                out.flush(); // 把緩存區內容壓入文件
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
相關文章
相關標籤/搜索