【发布时间】:2015-12-29 08:18:48
【问题描述】:
我想做什么...
我的 XML 文件的名称类似于 SomeName999999blablabla.xml,其中包含大量内容,其中几乎每一行都包含字符串 "999999"。我需要相同的 xml 文件,在名称和文件内容中,999999 被 888888、777777 等替换。
问题...
我的代码运行良好,实际上创建了我需要的所有文件,但有时会出现一些小错误。就像在一行中,E 被“随机”替换为 D(它似乎总是比它应该的低一个字母,但我无法确认 100%)。它不是很多,比如 60 个文件中的一两个实例,每个文件大约 100MB。但由于它是一个 xml,这是一个真正的问题,因为这通常是模式违规,这会导致后续处理崩溃。 我完全不知道这是从哪里来的或如何解决它,请帮忙。
到目前为止我的代码...
private void createMandant(String mandant) throws Exception {
String line;
File dir = new File(TestConstants.getXmlDirectory());
for (File file : dir.listFiles()) {
if (file.getName().endsWith((".xml")) && file.getName().contains("999999")) {
BufferedReader br = new BufferedReader(new FileReader(file));
FileWriter fw = new FileWriter(file.getAbsolutePath().replace("999999", mandant));
while ((line = br.readLine()) != null) {
fw.write(line.replace("999999", mandant) + "\r\n");
}
br.close();
fw.close();
}
}
}
环境...
我们使用的是 Java 6。如前所述,文件非常大。像 100MB,每个几十万行。
【问题讨论】:
-
换个机器试试,可能是硬件问题。
标签: java io bufferedreader filewriter