Kemungkinan Duplikat:
Cara membuat String Java dari konten file
Seluruh file teks menjadi String di Java
Saya mencoba membaca konten file menggunakan FileReader. Tetapi saya ingin membaca file tanpa membaca baris demi baris. Apakah mungkin untuk membaca seluruh file tanpa loop. Saya menggunakan kode berikut
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();
}
Jawaban:
Jika filenya kecil , Anda dapat membaca seluruh data satu kali:
sumber
file.length()
mungkin mengembalikan 0 untuk file di bawah/proc
. Dan dalam kasus tersebut cuplikan ini akan mengembalikan string kosong.read
Mungkin juga tidak memenuhi seluruh buffer. Ini mungkin berfungsi dalam praktik dengan sebagian besar JRE, tetapi tidak ada jaminan di API.Solusi satu baris Java 7
atau
sumber
String text = Files.readString(Paths.get("file"));
bahkan lebih pendek lagi, dengan asumsi Anda menginginkan keluaran UTF-8 String.file.toPath()
di dalamreadAllBytes
Call requires API level 26: java.nio.file.Files#readAllBytes
- hal yang sama untukreadString
.Anda dapat mencoba menggunakan Scanner jika Anda menggunakan JDK5 atau lebih tinggi.
Atau bisa juga menggunakan Jambu Biji
sumber
String data = Files.toString(new File("path.txt"), Charsets.UTF_8);
. Hanya salah ketik kecil. :-)Scanner
hanya membaca 1024 byte pertama dari file. Lihat kode sumber. Itu membaca buffer dan memeriksanya dengan regexp ini. Ini selalu valid - kemudian mengembalikan semua konten buffer. Secara default buffer memiliki ukuran 1024 byte.Files.readAllLines()
. Untuk JRE lama,FileInputStream.read()
mungkin yang terbaik. Saya tidak yakin apakah ini portabel untuk semua platform (mis. Ctl-Z dikenali di mana-mana), dan mudah untuk melewatkan melakukan aScanner.close()
.Jika Anda menggunakan Java 5/6, Anda dapat menggunakan Apache Commons IO untuk membaca file ke string. Kelas berisi
org.apache.commons.io.FileUtils
beberapa metode untuk membaca file.misalnya menggunakan metode
FileUtils#readFileToString
:sumber
Sejak Java 11 Anda dapat melakukannya dengan lebih sederhana:
Sumber: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/nio/file/Files.html#readString(java.nio.file.Path)
sumber