如何替换对于字符串来说太大的文件中的文本?我一直在使用以下内容替换我见过的大多数文件中的文本:
File f = new File("test.xml");
String content = FileUtils.readFileToString(f, "UTF-8");
content = content.replaceFirst("some text", "new text");
FileUtils.writeStringToFile(f, content, "UTF-8");
这适用于正常大小的文件。但是,我得到的一些文件非常大(太大而无法存储在字符串中)并且它们会导致溢出。如何替换这些文件中的文本?
最佳答案
你可以使用sed命令来替换大文件的字符串,如下面的[Linux]
String[] cmdarr = {"bash", "-c", "sed 's/oldstring/newstring/g' input.txt > output.txt"};
Process runCmd = Runtime.getRuntime().exec(cmdarr);
在 Windows 中你可以安装 sed,使用类似的东西
String[] cmdarr = {"cmd", "/c", "sed 's/oldstring/newstring/g' input.txt > output.txt"};
Process runCmd = Runtime.getRuntime().exec(cmdarr);
更多关于 Link
关于java - 如何替换对于字符串来说太大的文件中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40241704/