我不了解I / O中的写入方法的代码

时间:2015-10-23 12:28:16

标签: java io

我刚开始学习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文件。 感谢

3 个答案:

答案 0 :(得分:2)

首先,如果路径正确,FileReader将准备好在给定的文件路径下读取文件的内容。
其次,FileWriter准备将文件写入文件,如果它有东西要写。

接下来,读者从文件中读取内容,直到文件(-1)结束,并使用writer写入另一个文件。

At读者和作家将会关闭。

如果您有任何疑问,请在此处评论。

答案 1 :(得分:2)

write(int c)方法将int(32位)转换为char(16位)。然后根据编码将char转换为适当的字节。在这种情况下,使用的编码是平台默认编码,但您应始终指定用于确保在任何环境中都能正常工作的编码。

不将char c作为参数的原因显然是design oversight,现在为时已晚,无法纠正。

答案 2 :(得分:2)

reader.read()一次从文件中读取一个字符。这看起来有点令人困惑,因为你正在以整数值的形式读取一个字符,但这一切都意味着整数值等于一个字符。如果文件中没有要读取的字符,则返回-1,这就是您知道自己已经到达文件末尾的方式。

writer.write的行为方式相同。它将字符的整数值写入文件。

以下是Java IO FileReader上的精彩教程的链接。 这是Java IO FileWriter的一个。