2016-04-01 8 views
0

この質問は複数回尋ねられましたが、それらのリンクのすべてのアドバイスにもかかわらず、まだファイルが見つかりませんでしたエラーが発生します。Eclipseのプロジェクトで.txtファイルを読む

これは既に確認済みのリンクです。

Where do I put the txt file that I want to read in Java?

How to really read text file from classpath in Java

ので、重複としてマーク幸せなトリガを取得しないでください。

これらのリンクのほとんどは、ClassPathとBuildPathという言葉を同じ意味で使用しているようですが、それらは私のIDEで同じものですか?ClassPathに関連するものは見つからないようです。

これは私のディレクトリ構造です。

enter image description here

は、発信者クラスは、リンクに

enter image description here

さて、私が試したほとんどすべてのファイルを必要とし、私はまだファイルを読み取ることができません。

ファイルを読み取るコードはここに

String path = "DataSource/data1.txt"; 
     String jsonData = null; 

     try { 

      jsonData = Reader.readFile(path); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

感謝すべてのヘルプです。

+1

コードはどこですか? – Codebender

+0

java以外のファイルは '' src/main/java''ではなく、 '' src/main/resources''に属します。また: "私はまだファイルを読むことができません。" - 何のエラーが出ていますか? – f1sh

+0

私は、次のエラーを受け取りました。 'java.io.FileNotFoundException:DataSource/data1.txt(そのようなファイルやディレクトリはありません)' – Zeus

答えて

2

文字列のパス= "SRC /メイン/ javaの/データソース/ data1.txt" をしてみてください。

eclipe内の実行ポイントがプロジェクトルートにあることを理解してください。

ただし、このようなリソースをjarファイルにパッケージしたい場合があります。もしそうなら、あなたのようなものを使用する必要があります:

jsonData = Reader.readFile(Caller.class.getResourceAsStream( "データソース/ data1.txtを" "));最後に

、それは良い習慣だから、「SRC /メイン/リソース」に.txtファイルを移動します。

+0

最初のものが動作しますが、入力ストリームとは対照的にStringを消費するために2番目のメソッドを使用する方法があります。 – Zeus

+0

私の読者は、inputStreamではなく文字列パラメータを使用しているということです。 – Zeus

+0

こんにちは@ゼウス、その他のオプション、exemapleのためのこれがあります:https://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#readAllBytes(java.nio.file) .Path)あなたはバイトを読み取って、それらのバイトで新しいStringを行います。 .jarファイルの制限は残ります。ある時点でリソースがパッケージ化されると、クラスパスリソースだけがあなたを助けることができます。 – Sombriks

0

用語用語ビルドパスはIDE(すなわちエクリプス)に関連しながら、Javaコードのコンパイルと実行に関連クラスパス。IDEが追加されますBuildPathに追加されたライブラリは自動的にClassPathに渡されますアプリケーション/プログラムの作成と実行を行います。

は、あなたが

  1. は絶対ファイルパスを提供する2つの方法でファイル・パスを提供することができ、「発信者クラスは、ファイルを必要とします」。
  2. 相対パスを入力しますが、プログラムを実行している場所からの相対パスであることを確認してください。 IDEの場合、相対パスはProject-Directoryからのものでなければなりません。