首页 > 解决方案 > Java 从文件中读取“线程'main'中的异常”错误

问题描述

我有一个关于拼写检查程序的大学作业,该程序使用提供给我们的字典文本文件,其中一个单词一行几百个单词。因此,我一直在尝试使用代码中自制的简单阅读文件(chinese.txt),仅在所需的持续时间内,而不是一开始就使用整个字典。我制作了两个类,一个具有读取文件功能,一个用于执行它(拼写检查器)。但是,当我尝试执行时,无论我在线程中更改什么说异常,我都会不断收到相同的错误。

读取文件.java:

package coursework2;
import java.io.*;
import java.util.*;

public class readfile {

private Scanner x;

public void openFile() {
    try {
        x = new Scanner(new File("chinese.txt"));
    }
    catch(Exception e) {
        System.out.println("Not found");
    }
}
public void readFile() {
    while(x.hasNext()) {
        String a = x.next();
        String b = x.next();
        String c = x.next();

        System.out.printf("%s %s %s", a,b,c);
    }
}
public void closeFile() {
    x.close();
}

拼写检查器.java:

epackage coursework2;

class spellchecker {

public static void main(String[] args) {

    readfile r = new readfile();
    r.openFile();
    r.readFile();
    r.closeFile();
}

}

文本文件(中文)每行只有几个单词 3 因此打印方法的格式。如果有人可以让我知道如何摆脱这个错误或更好的方法来开始我对这个拼写检查程序的方法,那将不胜感激。因为我的实际项目需要使用可能有几千个变量的字典。

亲切的问候

一年级Java学习者。

标签: javadictionarypackagefilereaderspell-checking

解决方案


正如其他人所说,在评论中,您需要告诉我们异常是什么。更改 openFile 函数如下:

public void openFile() 
{
    try 
    {
        x = new Scanner(new File("chinese.txt"));
    }
    catch(Exception e) 
    {
        System.out.println("Exception Raised: " + e.getMessage());
    }
}

重新运行它并告诉我们它打印出来的内容。如果问题不在 openFile() 内部,请以与上图相同的方式在 readFile() 内部的代码周围放置一个异常处理程序,并告诉我们它在那里打印的内容。


推荐阅读