这里我要复制文件的内容并将其写入同一个文件
我在文本文件中有四行,当我执行以下程序时 我得到空白文本文件
但是br1.readLine读取一行并通过清除其中的内容写入文件,它必须写入至少一行然后while循环应该结束..
但我得到一个空白文本文件.. !!!!
import java.io.*;
class ConsoleIo {
public static void main(String args[])
throws IOException,FileNotFoundException {
System.out.println("hi");
int a;
char b;
String c;
BufferedReader br1;
BufferedWriter br2;
br1 = new BufferedReader(new FileReader(args[0]));
br2 = new BufferedWriter(new FileWriter(args[0]));
while ((c = br1.readLine()) != null) {
br2.write(c);
}
br1.close();
br2.close();
}
}
有人能解释一下吗?
答案 0 :(得分:2)
解释:不要那样做。
文本编辑从来没有这样做。
第一个问题:在没有boolean参数的文件上打开new FileWriter()
;默认情况下,此类将截断目标文件。
第二个问题:即使你 在附加模式中打开FileWriter
,在这种情况下FileReader
的行为也是未定义的。
如果您编写此示例程序以了解如何修改文件的内容,请提醒您不要从字面上理解“修改文件内容”。
你应该做的是:
如果您不遵守上述情况,原始文件可能以各种方式损坏的可能性很高。
答案 1 :(得分:0)
在同一个(args [0])元素(同一个文件)上打开文件阅读器和编写器。