FileReaderを使用してファイルの内容を読み取ろうとしています。しかし、私は1行ずつ読まずにファイルを読みたいです。ループなしでファイル全体を読み取ることは可能ですか?私は次のコードを使用しています
try
{
File ff=new File("abc.txt");
FileReader fr=new FileReader(ff);
String s;
while(br.read()!=-1)
{
s=br.readLine();
}
}
catch(Exception ex)
{
ex.printStackTrace();
}
ファイルがsmallの場合、データ全体を1回読み取ることができます。
File file = new File("a.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int) file.length()];
fis.read(data);
fis.close();
String str = new String(data, "UTF-8");
Java 7 1行ソリューション
List<String> lines = Files.readAllLines(Paths.get("file"), StandardCharsets.UTF_8);
または
String text = new String(Files.readAllBytes(Paths.get("file")), StandardCharsets.UTF_8);
Java 5/6を使用している場合、文字列へのファイルの読み取りに Apache Commons IO を使用できます。クラス org.Apache.commons.io.FileUtils
は、ファイルを読み込むためのいくつかのメソッドを含んでいます。
例えばメソッドFileUtils#readFileToString
の使用:
File file = new File("abc.txt");
String content = FileUtils.readFileToString(file);
Java 11以降では、さらに簡単に行うことができます。
import Java.nio.file.Files;
Files.readString(Path path);
Files.readString(Path path, Charset cs)