2009-03-25 27 views
15

私は、Javaプログラムにデータを入力するためにテキストファイルから読み込もうとしています。しかし、日食は、ファイルをどこに置いても、連続して私にソースが見つかりませんでした。eclipseでファイルから読み込み

プロジェクトディレクトリに追加のソースフォルダを作成しましたが、問題のファイルはプロジェクトのbinファイルとプロジェクトのbinファイルの両方にあり、まだ見つかりません。

私は自分のデスクトップにそのコピーを置いて、ソースルックアップパスをブラウズするように頼んだときにEclipseをポイントしてみました。

私は何をしてもファイルを見つけることができません。

がここにそれが適切だ場合、私のコードです:

System.out.println(System.getProperty("user.dir")); 
    File file = new File("file.txt"); 


    Scanner scanner = new Scanner(file); 

加えて、それがユーザーのディレクトリがプロジェクトディレクトリで、コピーがあまりにもそこにあると言います。

私は何をすべきかわかりません。

おかげで、

アレックス以下の提案をしようとすると、再びリフレッシュした後、私はエラーのホストで迎えられました。

FileNotFoundException(Throwable).<init>(String) line: 195 
FileNotFoundException(Exception).<init>(String) line: not available 
FileNotFoundException(IOException).<init>(String) line: not available 
FileNotFoundException.<init>(String) line: not available  
URLClassPath$JarLoader.getJarFile(URL) line: not available 
URLClassPath$JarLoader.access$600(URLClassPath$JarLoader, URL) line: not available 
URLClassPath$JarLoader$1.run() line: not available 
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method] 
URLClassPath$JarLoader.ensureOpen() line: not available 
URLClassPath$JarLoader.<init>(URL, URLStreamHandler, HashMap) line: not available 
URLClassPath$3.run() line: not available  
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method] 
URLClassPath.getLoader(URL) line: not available 
URLClassPath.getLoader(int) line: not available 
URLClassPath.access$000(URLClassPath, int) line: not available 
URLClassPath$2.next() line: not available 
URLClassPath$2.hasMoreElements() line: not available  
ClassLoader$2.hasMoreElements() line: not available 
CompoundEnumeration<E>.next() line: not available 
CompoundEnumeration<E>.hasMoreElements() line: not available  
ServiceLoader$LazyIterator.hasNext() line: not available  
ServiceLoader$1.hasNext() line: not available 
LocaleServiceProviderPool$1.run() line: not available 
AccessController.doPrivileged(PrivilegedExceptionAction<T>) line: not available [native method] 
LocaleServiceProviderPool.<init>(Class<LocaleServiceProvider>) line: not available 
LocaleServiceProviderPool.getPool(Class<LocaleServiceProvider>) line: not available 
NumberFormat.getInstance(Locale, int) line: not available 
NumberFormat.getNumberInstance(Locale) line: not available 
Scanner.useLocale(Locale) line: not available 
Scanner.<init>(Readable, Pattern) line: not available 
Scanner.<init>(ReadableByteChannel) line: not available 
Scanner.<init>(File) line: not available  

使用コード:

System.out.println(System.getProperty("user.dir")); 
    File file = new File(System.getProperty("user.dir") + "/file.txt"); 


    Scanner scanner = new Scanner(file); 

答えて

18

あなたはリフレッシュ(右クリック - >リフレッシュ)してみてくださいましたプロジェクトフォルダをファイルをコピーした後、そこで?これにより、Eclipseの内部ファイルシステムでファイルシステムが同期されます。

Eclipseプロジェクトを実行すると、CWD(現在の作業ディレクトリ)はプロジェクトのルートディレクトリです。 binのディレクトリではありません。 srcのディレクトリではなく、ルートディレクトリです。

また、Linuxを使用している場合、そのファイルシステムでは大文字と小文字が区別されることに注意してください。

+0

問題は私がsrcファイルとfilesファイルをリフレッシュしていたのですが、プロジェクトファイルではなく、見つけられなかったと思います。助けてくれてありがとう – Buzkie

+0

あなたの問題を解決しましたか? –

+0

はいそれは今動作します – Buzkie

7

あなたは絶対パスを使用してみました:

File file = new File(System.getProperty("user.dir") + "/file.txt"); 
1

あなたのコードに何も問題はありません。私がuser.dirディレクトリにfile.txtを持っていれば、次のように動作します。

import java.io.File; 
import java.util.Scanner; 

public class testme { 
    public static void main(String[] args) { 
     System.out.println(System.getProperty("user.dir")); 
     File file = new File("file.txt"); 
     try { 
      Scanner scanner = new Scanner(file); 
     } catch (Exception e) { 
     System.out.println(e); 
     } 
    } 
} 

Eclipseは、ファイルがどこにあるかを信用しないでください。 Windowsエクスプローラまたは同等の機能を備えた実際のファイルシステムに移動してチェックします。

あなたの編集に基づいて、私はあなたのインポートステートメントも見る必要があると思います。

4

実行ディレクトリ(クラスが格納されている場所だと思います)のファイル "fiel.txt"を検索/読み込み中です。

あなたが指定したディレクトリ内のファイルを読むためにシューッという音ならば、あなたはそう言う必要があります:

File file = new File(System.getProperty("user.dir")+"/"+"file.txt"); 

あなたはまた、相対パスで例えば」./images/photo.gifをディレクトリを与えることができます)たとえばサブディレクトリの場合。セパレーターのプロパティもあることを

注意(「/」に私のexempleでハードコードされた)あなただけのファイルの絶対パスを取得する必要があります

よろしく ギヨーム

0

、あなたが探しているファイルがEclipseのランタイムワークスペースに存在しないため、 - getProperty()またはgetLocationURI()メソッドを使用してファイルの絶対パスを取得することができます。

3

私はEclipseを使用しています。 「ファイルが見つかりません」という例外のためにファイルを読み取ることができます。私がこの問題を解決するためにしたのは、ファイルを自分のプロジェクトのルートに移動したことでした。お役に立てれば。

0

ファイルが正しいディレクトリにある場合でも、「ファイルが見つかりません」という例外があります。あなたができることの1つは、テキストファイルをEclipseの中にドロップすることです。クラスは左側にあります。コピーするかどうかを尋ねるメッセージが表示されたら、[はい]をクリックします。時にはそれが役に立ちます。

関連する問題