线程“main”中的异常java.lang.NullPointerException(Uni work)

时间:2013-10-08 10:49:40

标签: java

import easyIO.*;

class Oblig3A {

    public static void main(String[] args) {

    OrdAnalyse oA = new OrdAnalyse(args[0]);
    oA.textLeser();
    } //closes main
} //closes Oblig3 class

class OrdAnalyse {

    String[] ord = new String[5000];
    int[] antall = new int[5000];
    int antUnik = 0;
    String argu;


    OrdAnalyse(String file){

    argu = file;
    } //args relay

    void textLeser(){
        In lesText = new In(argu);
    Out nyText = new Out("oppsummering.txt" , true);

    while (!lesText.endOfFile()) {
        String reader = lesText.inWord();
        for(int i=0; i<ord.length; i++) {

        if(reader.equals(ord[i])) {
            antall[i]++;
            antUnik++;
            ord[i] = reader;
            nyText.out(ord[i]);
        } //if

        else {
            antall[i]++;

        } //else
        } //for
    }//while
    }//textLeser
}//OrdAnalyse.class

任何人都能发现错误的东西吗? :S需要帮助。

我不知道它有什么问题,我尝试了很多不同的东西。 :/

不知道为什么会这样:s

第33行= if(reader.equals(ord [i])){

1 个答案:

答案 0 :(得分:2)

  

只是用不同的文件试了一下并得到了这个

Exception in thread "main" java.lang.NullPointerException
    at OrdAnalyse.textLeser(Oblig3A.java:33)
    at Oblig3A.main(Oblig3A.java:8)

根据您的评论,以下方法调用将返回null

String reader = lesText.inWord();

稍后,在第33行,您可以访问reader变量。

if(reader.equals(ord[i]))

在null对象上调用方法会抛出您看到的NullPointerException

最有可能的是,inWord()endOfFile()一起无法按预期工作。您需要阅读这两种方法的文档,然后决定如何处理来自null的{​​{1}}结果:最简单的解决方案是打破外部循环,但您可能想要做其他事情。

inWord()