Ответ 1
В Java 7 есть API по этим строкам.
чтобы получить содержимое файла txt, я обычно использую сканер и перебираю по каждой строке, чтобы получить контент:
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"))
В Java 7 есть API по этим строкам.
Не встроенный 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();
commons-io имеет:
IOUtils.toString(new FileReader("file.txt"), "utf-8");
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"));
}
Вы можете использовать класс 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
}