一、介紹
Java提供了多種方法讀取文件,其中FileReader是最基礎的一種。FileReader可以讀取字符流文件,並以字符的形式輸出。下面將介紹如何使用FileReader讀取文件內容。
二、讀取文件的方法
可以使用Java自帶的FileReader類來讀取文件內容。需要先創建一個FileReader對象,並使用該對象從文件中讀取字符。
try { FileReader reader = new FileReader("file.txt"); int character; while ((character = reader.read()) != -1) { System.out.print((char)character); } reader.close(); } catch (IOException e) { e.printStackTrace(); }
該代碼會讀取file.txt文件中所有的字符,並在控制台上輸出。需要注意,FileReader會讀取字符,而不是讀取位元組。因此,對於含有中文的文件,FileReader無法正確讀取。
三、文件編碼問題
對於含有中文的文件,需要注意文件編碼問題。如果文件編碼為UTF-8,則需要使用InputStreamReader將位元組流轉換為字符流,並指定字符集為UTF-8:
try { FileReader reader = new FileReader(new InputStreamReader(new FileInputStream("file.txt"), "UTF-8")); int character; while ((character = reader.read()) != -1) { System.out.print((char)character); } reader.close(); } catch (IOException e) { e.printStackTrace(); }
如果文件編碼為GBK,則需要將字符集指定為GBK:
try { FileReader reader = new FileReader(new InputStreamReader(new FileInputStream("file.txt"), "GBK")); int character; while ((character = reader.read()) != -1) { System.out.print((char)character); } reader.close(); } catch (IOException e) { e.printStackTrace(); }
四、讀取指定長度的文件內容
有時候需要按指定長度讀取文件內容,而非全部讀取。可以使用FileReader的read(char[] cbuf, int off, int len)方法,該方法將文件內容讀取到一個長度為len的字符數組cbuf中:
try { FileReader reader = new FileReader("file.txt"); char[] cbuf = new char[1024]; int len; while ((len = reader.read(cbuf, 0, cbuf.length)) != -1) { System.out.print(new String(cbuf, 0, len)); } reader.close(); } catch (IOException e) { e.printStackTrace(); }
五、結論
以上是使用Java FileReader讀取文件內容的幾種方法。需要注意的是,在使用FileReader讀取文件時,需要注意文件編碼問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/187204.html