web-dev-qa-db-ja.com

Javaでファイルコンテンツを取得する方法は?

txtファイルのコンテンツを取得するには、通常スキャナーを使用し、各行を繰り返してコンテンツを取得します。

Scanner sc = new Scanner(new File("file.txt"));
while(sc.hasNextLine()){
    String str = sc.nextLine();                     
}

Java apiは、次のような1行のコードでコンテンツを取得する方法を提供しますか?

String content = FileUtils.readFileToString(new File("file.txt"))
34
Upvote

Java 7では、これらの行に沿ってAPIがあります。

Files.readAllLines(パスパス、Charset cs)

15
rich

組み込みのAPIではありませんが、 Guava は、他の宝物の中でもあります。 (素晴らしいライブラリです。)

String content = Files.toString(new File("file.txt"), Charsets.UTF_8);

Readableを読み込む、バイナリファイルの全コンテンツをバイト配列として読み込む、またはファイルを文字列のリストに読み込むなどの同様の方法があります。

このメソッドは廃止されることに注意してください。新しい同等のものは:

String content = Files.asCharSource(new File("file.txt"), Charsets.UTF_8).read();
26
Jon Skeet

commons-io には:

IOUtils.toString(new FileReader("file.txt"), "utf-8");
15
Bozho
import Java.io.IOException;
import Java.nio.file.Files;
import Java.nio.file.Paths;

public static void main(String[] args) throws IOException {
    String content = Files.readString(Paths.get("foo"));
}

から https://docs.Oracle.com/en/Java/javase/11/docs/api/Java.base/Java/nio/file/Files.html#readString(Java.nio.file.Path )

8
Thomas Grainger

FileReaderクラスとBufferedReaderを使用して、テキストファイルを読み取ることができます。

File fileToRead = new File("file.txt");

try( FileReader fileStream = new FileReader( fileToRead ); 
    BufferedReader bufferedReader = new BufferedReader( fileStream ) ) {

    String line = null;

    while( (line = bufferedReader.readLine()) != null ) {
        //do something with line
    }

    } catch ( FileNotFoundException ex ) {
        //exception Handling
    } catch ( IOException ex ) {
        //exception Handling
}
4