我是小康小白,一個平平無奇的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 。