2012-03-18 100 views
1

所以我有以下的代碼來檢查稱爲Doctors.txt爲什麼我不能在我的項目中訪問這個.txt文件?

文本文件

它具有以下信息:

35000 2000 AV122258C Dr Alex James CARDIO 
30500 2005 AB347433C Miss Elizabeth Kooper MB 
32653 1995 JA103240B Dr Mohammed Khan ON 
64400 2001 JG371458A Dr Tom Jacob CARDIO 
91000 2002 IH102411Y Dr Rahana Mohammed ON 
55000 1987 JJ405626N Dr Mary Francis AN 
87000 1988 WQ333452N Mr Mark Cromwell NEURO 
60500 1998 HK413942S Mr Victor Jacob GASTRO 
40000 2003 AJ103006X Dr Mia Larson GS 
42000 2003 ER148468D Dr Rizwan Hussain GS 
38000 2004 RB193984P Dr Lam Yeng HAE 

的類文件時,它自...

import java.io.PrintWriter; 
import java.io.FileReader; 
import java.util.Scanner; 
import java.io.IOException; 

public class FileHandler 
{ 
/** 
* Save all doctor records to a file 
* @param doctors the DoctorList to save 
*/ 
public void saveRecords(DoctorList doctors) 
{ 
     PrintWriter writer = null; 
    try 
    { // NB: the file name is hard-coded 
     writer = new PrintWriter("Doctors.txt"); 
     writer.println(doctors.toString()); 
     writer.flush(); 
    } 
    catch(IOException e) 
    { 
     System.out.println("Error writing file"); 
    } 
    finally 
    { 
     writer.close(); 
    } 
} 

/** 
* Load doctor records from the file 
* @param doctors the DoctorList to add doctors to 
*/ 
public void readRecords(DoctorList doctors) 
{ 
    FileReader reader = null; 
    try 
    { 
     // NB: the file name is hard-coded 
     reader = new FileReader("Doctors.txt"); 
     Scanner sc = new Scanner(reader); 

     String record; 
     String[] data; 
      Doctor doctor; 
     while(sc.hasNextLine()) 
     { 
      record = sc.nextLine(); 
      if(record.length() != 0) 
      { 
       data = record.split("\t", 5); 
         doctor = DoctorFactory.newDoctor(data[3], data[0], data[2], data[1], data[4]); 
       doctors.add(doctor); 
      } 
     } 
    } 
    catch(IOException e) 
    { 
     System.out.println("Error reading file"); 
     e.printStackTrace(); 
    } 
} 
} 

我已經把它放在像這樣的相同區域內: enter image description here

但是,似乎當我運行主類時,它無法讀取內容...

回答

1

路徑是你的問題。試試這個:

reader = new FileReader("src/Doctors.txt"); 

一個更好的解決方案是不依賴於文件路徑,並使用getResourceAsStream()CLASSPATH返回InputStream

0

當時的應用程序。是建立,文本'文件'通常會在一個罐子裏面。它可以通過URL讀取,但不能寫入。


這樣的「持久」式的資源通常的策略是把他們的user.home一個子目錄,然後通過File

訪問它們
相關問題