当我在文件名后写.txt时,我得到nullpointerexception

时间:2013-05-14 18:28:47

标签: java eclipse

每当我在文件名后面写.txt时,我都会收到nullpointrexception错误。但是,当我不写.txt程序似乎运行但它总是说系统找不到指定的文件。我不知道该怎么做。请指导我。 这是我的代码

public void signin(){
    //System.out.println(System.getProperty("user.dir"));
    File file=new File("C:\\Workplace\\3rdLastLab\\file1.txt");
    try{
        FileReader fr=new FileReader(file);
        BufferedReader br=new BufferedReader(fr);
        Scanner sc=new Scanner(br);
        String text1=field1.getText();
        String text2=field2.getText();
        String text3=text1+"."+text2;


        while(sc.hasNext()){

            String string= sc.next();   
            if(text3.equals(string)==true){
                JOptionPane.showMessageDialog(null, "You are logged in!");
            }
            else
                JOptionPane.showMessageDialog(null, "Wrong user name or password");
        }

        br.close();
    }
    catch (IOException e){
        JOptionPane.showMessageDialog(null, e.getMessage());
    }

}

我得到了这些错误

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at Login.signin(Login.java:36)
at Login.actionPerformed(Login.java:122)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

3 个答案:

答案 0 :(得分:3)

我的通灵调试能力告诉我,当你在field1上调用时,field2getText为空。

String text1=field1.getText();
String text2=field2.getText();

在添加nullpointrexception时,您只获得.txt例外的原因是因为您的代码在该点之前会抛出fileNotfound例外。

您需要确保field1field2已实例化。

答案 1 :(得分:2)

查看放置正确文件名时的行为,会得到空指针异常

您似乎遇到了field1field1的问题(如果它们与第36行相对应)

    String text1=field1.getText();
    String text2=field2.getText();

可能为空,具体取决于您如何设置这些

答案 2 :(得分:0)

我确信%100表示​​阅读过程没有任何问题,因为非BufferedReaderFileReaderScanner投放到 NullPointerException
我确定您的某个文本字段存在问题,我确信您没有定义其中一个(可能有多个),因为 NullPointerException 在没有引用数据的情况下发生初始化。
请阅读this post关于 NullPointerException