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