无法比较文件

时间:2016-02-19 06:17:03

标签: java tokenize readline

我一直在尝试将输入文件与数据库文件进行比较。代码比较文件并输出数据库文件(db.txt)中存在的输入文件(test.txt)中的单词。但是,我没有从输出中的输入文件中得到最后一个字。

test.txt包含:

There is a book on the table

db.txt包含:

book 
the 
table

因此,我在输出中没有得到表格。

public static void main(String[] args) {
    try {
        File file = new File("G:\\Project\\test.txt");
        File file2 = new File("G:\\Project\\db.txt");
        FileReader fileReader = new FileReader(file);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        StringBuffer stringBuffer = new StringBuffer();
        String line;
        while ((line = bufferedReader.readLine()) != null) {
            stringBuffer.append(line);
            stringBuffer.append("\n");
        }
        fileReader.close();
        StringTokenizer st = new StringTokenizer(stringBuffer.toString()," ");
        while (st.hasMoreTokens()) 
        {
            String word=st.nextToken();
            BufferedReader br = new BufferedReader(new FileReader(file2)); 
            String lin;

            while((lin=br.readLine())!=null){
                { if(word.equalsIgnoreCase(lin))
                    System.out.println(word);
                }
            }
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
}

收到的输出:

book
the

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

您要将换行符附加到stringbuffer,这会导致此问题。

从代码中删除以下行并尝试,它会起作用。

stringBuffer.append("\n");