2014-06-21 172 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