我正在使用以下程序在搜索查询(> 100 MB)上读取一个巨大的搜索引擎数据库转储并删除不需要的表数据,这样我只剩下关键字,这样我就可以挖掘我的一个班级的趋势数据。
这是我到目前为止所拥有的:
import java.io.*;
public class FileUtil {
public static void main(String args[]) {
try {
FileInputStream fStream = new FileInputStream("\\searches.txt");
BufferedReader in = new BufferedReader(new InputStreamReader(fStream));
//PrintStream out = new PrintStream(new FileOutputStream("searchesEdited.txt"));
while (in.ready()) {
System.out.println(in.readLine());
String keyword = "foo"; // selected keyword to delete in txt file
//search for string
//delete the string
//write newly edited file to searchesEdited.txt
}
in.close();
} catch (IOException e) {
System.out.println("File input error");
}
}
}
这按预期工作并将所有数据输出到控制台,所以我的方向正确。现在我只需要替换/删除传递的关键字。我已经查看了replaceAll()
方法但似乎无法正确实现它。任何帮助将不胜感激。
答案 0 :(得分:1)
尝试,
String line=in.readLine();
String keyword = "foo";
String newLine=line.replaceAll(keyword,"");
或者
String keyword ="\\bfoo\\b"; //word boundary match
String newLine=line.replaceAll(keyword,"");
答案 1 :(得分:0)
您可以使用带有空字符串的String.replace()进行替换,例如
"search for a keyword and delete this keyword".replace("keyword", "")
返回
"search for a and delete this"
另请参阅here以获取有关如何读取和写入文本文件的简单教程。