如果您想要存取的是一個文字檔案,您可以直接使用FileReader、FileWriter類別,它們分別繼承自InputStreamReader與
OutputStreamWriter,您可以直接指定檔案名稱或File物件來開啟指定的文字檔案,並讀入串流轉換後的字元,字元的轉換會根據系統預設
的編碼(若要指定編碼,則還是使用InputStreamReader與OutputStreamWriter)。
FileReader、FileWriter的使用非常簡單,直接舉個例子。在Linux下撰寫的文字檔案,其斷行字元是'\n',而在 Windows下撰寫的文字檔案其斷行是'\r'與'\n'兩個連續字元,如果您在Windows下使用記事本開啟一個Linux下撰寫的文字檔案,其在顯示上並不會有斷行的效果,且'\n'字元會被用一個黑色方塊來顯示。
我們在這邊撰寫一個簡單的程式,讀入Linux下撰寫的文字檔案,並寫入另一個檔案,在讀取到'\n'字元時,就取代為'\r'與'\n'兩個連續字元,如此新的檔案在Windows的記事本程式中,就可以有斷行顯示的效果。
- FileReaderWriterDemo.java
package onlyfun.caterpillar; import java.io.*; public class FileReaderWriterDemo { public static void main(String[] args) { try { FileReader fileReader = new FileReader(args[0]); FileWriter fileWriter = new FileWriter(args[0] + ".txt"); int in = 0; char[] wlnChar = {'\r', '\n'}; while((in = fileReader.read()) != -1) { if(in == '\n') fileWriter.write(wlnChar); else fileWriter.write(in); } fileReader.close(); fileWriter.close(); } catch(ArrayIndexOutOfBoundsException e) { e.printStackTrace(); } catch(IOException e) { e.printStackTrace(); }
} }
|
|