我正在尝试学习 Java/Android,现在我正在对该replaceAll
功能进行一些实验。但是我发现对于大型文本文件,该过程会变得缓慢,所以我想知道是否有办法跳过文件的“无用”部分以获得更好的性能。(注意:跳过它们,不要删除它们)
注意:我不是要“计算行数”或“println”或“system.out”,我只是替换字符串并将更改保存在同一个文件中。
例子
AAAA
CCCC- 9234802394819102948102948104981209381'238901'2309'129831'2381'2381'23081'23081'284091824098304982390482304981'20841'948023984129048'1489039842039481'204891'29031'923481290381'20391'294872385710239841'20391'20931'20853029573098341'290831'20893'12894093274019799919208310293810293810293810293810298'120931¿ 2093¿12039¿120931¿203912¿0391¿203912¿039¿12093¿12093¿12093¿12093¿12093¿1209312¿0390¿... DDDD
AAAA
CCCC- 9234802394819102948102948104981209381'238901'2309'129831'2381'2381'23081'23081'284091824098304982390482304981'20841'948023984129048'1489039842039481'204891'29031'923481290381'20391'294872385710239841'20391'20931'20853029573098341'290831'20893'12894093274019799919208310293810293810293810293810298'120931¿ 2093¿12039¿120931¿203912¿0391¿203912¿039¿12093¿12093¿12093¿12093¿12093¿1209312¿0390¿... DDDD
等等......就像无数次
我想用"BBBB"替换所有"AAAA",但是我要替换的字符串之间有很大一部分数据。此外,这部分始终以"CCCC"开头并以"DDDD"结尾。
这是我用来替换字符串的代码。
File file = new File("my_file.txt");
BufferedReader reader = new BufferedReader(new FileReader(file));
String line = "", oldtext = "";
while((line = reader.readLine()) != null) {
oldtext += line + "\r\n";
}
reader.close();
// Replacing "AAAA" strings
String newtext= oldtext.replaceAll("AAAA", "BBBB");
FileWriter writer = new FileWriter("my_file.txt");
writer.write(newtext);
writer.close();
我认为阅读所有行效率低下,尤其是当您不修改这些部分时(它们代表文件的 90%)。
有谁知道解决办法???