簡體   English   中英

我對I / O中的write方法不了解的代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM