我刚开始学习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文件。 感谢
答案 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的一个。