Java将文件与BufferedReader进行比较

时间:2015-02-26 19:19:18

标签: java file bufferedreader bufferedwriter

这是我正在尝试的方法:

static void filter( BufferedReader orders, BufferedReader in,
        BufferedWriter out ) throws IOException

目标是使用in阅读器阅读文本文件,然后检查句子是否包含与订单阅读器存储在另一个文本文件中的关键字,如果句子确实包含这些关键词,请将其写下来另一个没有作家的文本文件。

到目前为止我已经这样做了:

static void filter( BufferedReader orders, BufferedReader in,
        BufferedWriter out ) throws IOException{

    BufferedReader ordersf = new BufferedReader(new FileReader("order_filter.txt"));
    BufferedReader inf = new BufferedReader(new FileReader("hamlet.txt"));
    BufferedWriter outf = new BufferedWriter(new FileWriter("out_filter.txt"));

    String line = inf.readLine();

    while(line != null){
        String filter = ordersf.readLine();
        if(filter.equals(line))
            outf.write("    "+line);
    }
    ordersf.close();
    inf.close();
    outf.close();
}

现在我不知道如何将order_filter.txt中包含的关键词与hamlet.txt中的句子进行比较 我将不胜感激。

1 个答案:

答案 0 :(得分:2)

如果您想以肮脏的方式进行操作,那么您可以从 ordersf 中拆分单词,并查看每个单词是否是句子的子字符串。因此,假设您的过滤器具有由空格分隔的单词,那么您可以执行以下操作:

String[] filter_words = filter.split(" ");

for(String filter_word : filter_words) {
    if(line.toLowerCase().contains(filter_word.toLowerCase())) {
        <<do something>>;
    }
}