2012-03-18 18 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"); 

より良い解決策は、ファイルパスに依存しているとCLASSPATHからInputStreamを返すためにgetResourceAsStream()を使用しないことです。

0

時間によってアプリ。テキスト 'ファイル'は一般にJarの内部にあります。 URLで読むことはできますが、書き込まれることはありません。


このような「持続性」スタイルのリソースのための通常の戦略はuser.homeのサブディレクトリにそれらを置くことですその後、File

してアクセス
関連する問題