将内容与Java中的文件进行比较

时间:2014-10-17 19:38:51

标签: java string file bufferedreader filereader

我试图将一个单词作为输入,并检查该单词是否存在于文本文件中。但我最终得到了这个错误。

import java.io.*;
public class SpellingChecker {
    public static void test(String str) throws IOException{
        FileReader fr = new FileReader("wordsEn.txt");
        BufferedReader br = new BufferedReader(fr);
        int i=0,j=0,n=str.length();
        str+=' ';
        String temp="",temp2="";
        do{
            for(i=j;str.charAt(i)!=' ';i++)
                temp+=str.charAt(i);
            System.out.println(temp);
            while((temp2=br.readLine()) != null) {      
                if(temp==temp2) 
                    System.out.print("\t\t\tOK");
                else
                    System.out.print("\t\t\tWRONG");
            }
            temp="";
            j=i+1;
        }while(i<n);
        fr.close();
    }
    public static void main(String[] args) throws IOException{
        java.util.Scanner input = new java.util.Scanner(System.in);
        System.out.print("Enter string for which you want to check spelling : ");
        String strng=input.nextLine();
        test(strng);
    }
}

错误是

Exception in thread "main" java.io.FileNotFoundException: wordsEn.txt (The system cannot find the file specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:131)
    at java.io.FileInputStream.<init>(FileInputStream.java:87)
    at java.io.FileReader.<init>(FileReader.java:58)
    at SpellingChecker.test(SpellingChecker.java:5)
    at SpellingChecker.main(SpellingChecker.java:29)

2 个答案:

答案 0 :(得分:0)

您必须将文本文件放在源目录中。

答案 1 :(得分:0)

只有文件的名称不会。您必须在创建时提及文件的路径 “FileReader”对象。例如,如果路径是“C:\ wordsEn.txt”,你应该写: -

FileReader fr=new FileReader(new File("C://wordsEn.txt"));

请记住,如果您使用'\'代替“//”“Illegal Escape Character”将显示错误。 这应该解决它。试一试......