每当我在文件名后面写.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)
答案 0 :(得分:3)
我的通灵调试能力告诉我,当你在field1
上调用时,field2
或getText
为空。
String text1=field1.getText();
String text2=field2.getText();
在添加nullpointrexception
时,您只获得.txt
例外的原因是因为您的代码在该点之前会抛出fileNotfound
例外。
您需要确保field1
和field2
已实例化。
答案 1 :(得分:2)
查看放置正确文件名时的行为,会得到空指针异常
您似乎遇到了field1
或field1
的问题(如果它们与第36行相对应)
String text1=field1.getText();
String text2=field2.getText();
可能为空,具体取决于您如何设置这些
答案 2 :(得分:0)
我确信%100表示阅读过程没有任何问题,因为非BufferedReader
和FileReader
也Scanner
投放到 NullPointerException 。
我确定您的某个文本字段存在问题,我确信您没有定义其中一个(可能有多个),因为 NullPointerException 在没有引用数据的情况下发生初始化。
请阅读this post关于 NullPointerException 。