如何替换文件中对于字符串太大的文本?我一直在使用以下内容替换我见过的大多数文件中的文字:
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");
这适用于正常大小的文件。但是,我得到的一些文件非常大(太大而无法存储在String中)并且它们会导致溢出。如何替换这些文件中的文字?
答案 0 :(得分:1)
尝试使用FileInputStream以行方式读取
FileInputStream fs = new FileInputStream("test.xml");
BufferedReader reader = new BufferedReader(new InputStreamReader(fs));
等
很抱歉,如果代码中有任何错误,我现在无法自己尝试代码
答案 1 :(得分:1)
您可以使用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
答案 2 :(得分:1)
function SliderModel(){
var self = this;
self.max = ko.observable(200);
self.min = ko.observable(0);
self.value = ko.observable(100);
self.step = ko.observable(10);
}
var sliderModel = new SliderModel();
$(document).ready(function(){
ko.cleanNode( document.getElementById('slider_container'));
ko.applyBindings(SliderModel(), document.getElementById('slider_container'));
});
答案 3 :(得分:0)
尝试使用FART
(查找和替换文字)
对于Windows:fart -c big_filename.txt "find_this_text" "replace_to_this"