Как получить содержимое файла в Java? - PullRequest
34 голосов
/ 13 апреля 2011

, чтобы получить содержимое текстового файла. Я обычно использую сканер и перебираю каждую строку, чтобы получить содержимое:

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

Предоставляет ли java api способ получить содержимое одной строкой кода, например:

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

Ответы [ 5 ]

26 голосов
/ 13 апреля 2011

Не встроенный API - но Гуава делает, среди других своих сокровищ.(Это невероятная библиотека.)

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

Существуют похожие методы для чтения любого Readable, или загрузки всего содержимого двоичного файла в виде байтового массива, или чтения файла в список строк и т.д..

Обратите внимание, что этот метод устарел.Новый эквивалент:

String content = Files.asCharSource(new File("file.txt"), Charsets.UTF_8).read();
15 голосов
/ 13 апреля 2011

commons-io имеет:

IOUtils.toString(new FileReader("file.txt"), "utf-8");
15 голосов
/ 13 апреля 2011

В Java 7 есть API по этим направлениям.

Files.readAllLines (Path path, Charset cs)

8 голосов
/ 26 мая 2016
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)

4 голосов
/ 27 октября 2016

Вы можете использовать класс 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
}
...