[英]A code I don't understand about the write method in I/O
我剛開始學習IO,但是這段代碼有些我不明白的地方:
public static void main(String[] args) throws IOException {
FileReader reader = new FileReader("C://blablablal.txt");
FileWriter writer = new FileWriter("C://blabla.txt");
int c;
while ((c = reader.read()) != -1) {
writer.write(c);
}
reader.close();
writer.close();
}
我會很高興地看到在while循環中寫入“ c”(一個int)的write方法實際上是如何將其作為字符或字符串寫入txt文件中的。 謝謝
首先,如果路徑正確,FileReader將准備讀取給定文件路徑中File的內容。
其次,FileWriter將准備將某些內容寫入文件(如果有內容需要寫入)。
接下來,讀取器從文件讀取內容,直到File(-1)結束,然后使用writer寫入另一個文件。
最后,讀者和作家將被關閉。
如果您有任何疑問,請在此處評論。
write(int c)
方法將int
(32位)轉換為char
(16位)。 然后根據編碼將char轉換為適當的字節。 在這種情況下,使用的編碼是平台默認的編碼,但是您應始終指定用於確保在任何環境下都能正常工作的編碼。
它沒有將char c
作為參數的原因顯然是設計疏忽 ,現在為時已晚。
reader.read()一次從文件讀取一個字符。 這似乎有點令人困惑,因為您正在讀入一個整數值的字符,但這實際上意味着該整數值等於一個字符。 當文件中沒有更多字符要讀取時,將返回-1,這就是您知道已到達文件末尾的方式。
writer.write的行為相同。 它將字符的整數值寫入文件。
這里是有關Java IO FileReader的良好教程的鏈接。 這是Java IO FileWriter的一個 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.