2014-06-21 134 views
-8
import java.io.*; 
import java.util.*; 
public class FirstIO{ 
    static BufferedReader comein; 

    public void ReadTextFile(){ 
     try { 
     comein= new BufferedReader(new FileReader("C:\Users\HP\Desktop\vocab.txt")); 
     } catch(IOException ioe){ 
      System.out.println("File Not Found"); 
     } 
    } 
    public static void main(String[] args){ 

     FirstIO l= new FirstIO(); 
     System.out.println(comein); 
    } 

} 

为什么它会一直返回“null”?这是我的“对象名称”:C:\ Users \ HP \ Desktop \ vocab.txt为什么它会一直返回“null”?

回答

2

您没有调用方法ReadTextFile,因此给您错误NPE。

解决方案呼叫ReadTextFile方法首先

FirstIO l= new FirstIO(); 
l.ReadTextFile(); 
System.out.println(comein); 

另一种解决方案

你能做到这一点的FirstIO构造函数,因此你不会调用该方法

public class FirstIO{ 
static BufferedReader comein; 

public FirstIO(){ 
    try { 
    comein= new BufferedReader(new FileReader("C:\Users\HP\Desktop\vocab.txt")); 
    } catch(IOException ioe){ 
     System.out.println("File Not Found"); 
    } 
} 
public static void main(String[] args){ 

    FirstIO l= new FirstIO(); 
    System.out.println(comein); 
} 

}

+0

+1,但也许他打算在构造函数中这样做?只是一个想法:) – Obicere

+0

@Obicere我不这么认为,他添加了一个返回void。但也许他正在试图做一个构造函数。生病编辑。 –

+0

“C:\ Users \ HP \ Desktop \ vocab.txt”需要使用\的转义序列。它应该是“C:\\ Users \\ HP \\ Desktop \\ vocab.txt”。有关更多信息,请参阅http://docs.oracle.com/javase/tutorial/java/data/characters.html – DavidPostill