如何使用裝飾設計模式讀取指定路徑下的純文本文件的實現代碼

我是小康小白,一個平平無奇的Java小白。熱愛有趣的文字,生活和遠方。

在這裏插入圖片描述
編程要求:

在C:盤根目錄下創建純文本文件 test.txt,並鍵入下列內容:

呦呦鹿鳴,食野之蒿。

今夕何夕,見此良人。

桃之夭夭,灼灼其華。

如月之恆,如日之升。

巧笑倩兮,美目盼兮。

琴瑟在御,莫不靜好。

投我以桃木,報之以瓊瑤。

伐木丁丁,鳥鳴嚶嚶。出自幽谷,遷於喬木。


編寫程序,讀入上述文件,並把內容在控制檯上輸出。

編碼解析:

  • 首先在相應目錄下創建相應的文件,但要注意創建文件的格式要與代碼中的相同。(這裏不懂是什麼關係沒事,看到下面代碼就懂了)
    筆者使用的是EditPlus,可以直接設置文件的編碼格式

在這裏插入圖片描述

  • 我的文件的路徑:C:\Users\10593\test.txt(這個是自己放的位置)

實現代碼

import java.io.*;
public class JavaIO {
    public static void main(final String[] args){
        FileInputStream reader = null;
        BufferedReader bufferedReader = null;
        String line = null;
        InputStreamReader isr = null;       
        try {
            String filePath = "C:\\Users\\10593\\test.txt";
            //至於這裏爲什麼要雙斜槓見下文
            File file = new File(filePath);
            reader = new FileInputStream(file);
            isr = new InputStreamReader(reader,"UTF-8");
            //這裏的UTF-8就是前文提到的文件的編碼格式,要與你的文件的編碼格式相同,不然會出現亂碼
            //標準的字節流,按照一定的編碼格式,轉換爲字符流。如果讀取字符流的時候,使用的是系統默認的編碼格式,(微軟的一般是GBK)
			//則直接使用fileReader和fileWriter。如果需要指定編碼格式,則使用inputStreamReader和OutputStreamWrite
            bufferedReader = new BufferedReader(isr);
            while ((line = bufferedReader.readLine())!= null){
                System.out.println(line);
            }
        }catch (FileNotFoundException e){
            System.err.println(e.getMessage());
            e.printStackTrace();
        }catch (IOException e) {
            System.err.println(e.getMessage());
            e.printStackTrace();
        }finally {
            try {
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
       
    }
}

補充:
1.上傳文件路徑爲什麼要雙斜槓?
解析:由於我們是把路徑當成是一個字符串傳進去的,在字符串中斜槓“\”被當做轉義字符識別,所以要用“\(這裏是兩個斜槓,可能顯示出來是一個)”才能表示一個斜槓。
2.要指定文件格式嗎?
解析: 標準的字節流,按照一定的編碼格式,轉換爲字符流。如果讀取字符流的時候,使用的是系統默認的編碼格式,(微軟的一般是GBK),則直接使用fileReader和fileWriter。如果需要指定編碼格式,則使用inputStreamReader和OutputStreamWrite 。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章