我是新來的java和現在學習File io。但我對io非常困惑,因爲有很多對象需要處理它(FileReader,FileWriter,BufferedReader,BufferedWriter,FileInputStream,FileOutputStream ...並且可能還有更多)。java中的最佳文件I/O選項?
我想知道什麼是File io最有效的過程(我應該使用什麼?)。我不想要任何編碼。我只想處理文本文件。 任何簡單的示例代碼都會非常有幫助。
謝謝。
我是新來的java和現在學習File io。但我對io非常困惑,因爲有很多對象需要處理它(FileReader,FileWriter,BufferedReader,BufferedWriter,FileInputStream,FileOutputStream ...並且可能還有更多)。java中的最佳文件I/O選項?
我想知道什麼是File io最有效的過程(我應該使用什麼?)。我不想要任何編碼。我只想處理文本文件。 任何簡單的示例代碼都會非常有幫助。
謝謝。
首先很重要的一點理解和記憶:
流:序列字節。
讀/寫:中字符(字符串)
不要混合使用它們,如果沒有必要,不要爲一個轉換成另一個,並始終指定的順序編碼。
一些快速的食譜:
要閱讀文件作爲字節(二進制讀取)的序列。
new FileInputStream(File f);
同樣添加緩衝劑:
new BufferedInputStream(new FileInputStream(File f));
要讀文件作爲一個字符序列(文本讀數)。
new FileReader(File f); // ugly, dangerous, does not let us specify the encoding
new InputStreamReader(new FileInputStream(File f),Charset charset); // good, though verbose
要添加的面向行的緩衝(閱讀的文本的行)
new BufferedReader( ... someReader ...);
要輸出/寫是幾乎相同的(輸出/寫入器)
讀
後續將允許您按行讀入行
BufferedReader br = new BufferedReader(new FileReader(fileLocationTxt));
寫作
繼將允許您通過部分
DataOutputStream ds = new DataOutputStream(new FileOutputStream(newLocation));
至於你的問題寫一行/一部分線,不存在最好的選擇。即使在這裏,你可以看到我們在使用2個或更多次(看建設者,他們接受其他讀/寫器或的inputStream /輸出流。
最好的選擇取決於你真正想做的事
你可以嘗試不同的選擇......通常的BufferedReader包裝一的FileReader最好 – RNJ
考慮使用新的IO API在Java中。['NIO'](http://docs.oracle.com/javase/6/docs/api /java/nio/package-summary.html)。 –
只見NIO,發現它有點聽到(我的壞!)(不明白的代碼) – palatok