2016-08-18 9 views
1

私はJavaで新しく、のメソッドreadAlllinesに関する質問があります。ファイル"Testfile.txt"は、JavaクラスchangeFilesと同じディレクトリに保存されます。私はそれから行を読みたい。ファイルの行を読み込むための正しいパス

import java.io.*; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.util.List; 



public class changeFiles { 

    public static void main(String[] args) { 

     File temp =new File("Testfile.txt"); 
     Path p = temp.toPath(); 

     try{ 

     List<String> zeilen = Files.readAllLines(p); 

     for(String line : zeilen){ 
      System.out.println(line); 
     } 

     } catch (IOException e) { 
      System.out.println(e); 
     } 
    } 

} 

残念ながら、この方法は、ファイルを見つけることができません。

はここに私のコード例です。 readAllLinesでファイルへの正しいパスを取得するにはどうすればよいですか?

+2

基本パスは、クラスディレクトリではなく、プログラムを実行するディレクトリです。 –

答えて

3

あなたは実行して、楽しんで、あなたはいくつかの方法

System.getProperty("user.dir") 

そこ置き"Testfile.txt"でこれを印刷するチェックし、作業ディレクトリからファイルを取得しようとしています。

// imagine your file is placed in: c:\tmp\Testfile.txt 
final String folder = "C:\\tmp\\"; 
File temp = new File(folder, "Testfile.txt"); 

または多分両方のマージ:

final String folder = System.getProperty("user.dir"); 
File temp = new File(folder, "Testfile.txt"); 
+0

ところで、Paths.getを使用する方がより移植性の高いパス構築方法です。例: 'Path p5 = Paths.get(System.getProperty(" user.home ")、" logs "、" foo.log ");' [Java 7+が必要] –

2

Javaクラスの場所が同じではありませんがFile(folder, file)コンストラクタを使用してファイルを読み込むときに別の解決策は、フォルダを置くことになる


カレントディレクトリ。

たとえば、現在のディレクトリのようなものです: C:\Users\userName\project(txtファイルがあることshoud場所です)

とJavaクラスを使用すると、実行することができますどのような現在のディレクトリがある見つけるためにC:\Users\userName\project\src\packageName\Java.java

のようなものです: System.getProperty("user.dir")

関連する問題