繁体   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