-2

每当我在文件名后写入 .txt 时,都会收到 nullpointreexception 错误。但是当我不写 .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)
4

3 回答 3

3

我的心理调试能力告诉我,当你调用它们时,要么field1field2为空。getText

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

您仅在nullpointrexception添加时收到异常的原因.txt是因为您的代码fileNotfound在此之前引发了异常。

您需要确保field1field2已实例化。

于 2013-05-14T18:38:10.153 回答
2

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

看起来你有问题field1or field1( 如果它们对应于第 36 行)

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

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

于 2013-05-14T18:38:00.207 回答
0

我确信 %100 读取过程没有任何问题,因为 non ofBufferedReader并且FileReaderScanner被抛出 NullPointerException
我确定您的文本字段之一有问题,并且我确定您没有定义其中之一(可能不止一个),因为 在没有初始化的引用数据类型时会发生NullPointerException 。
请阅读这篇关于NullPointerException的文章。

于 2013-05-14T18:50:17.067 回答