Di sini ingatan adalah seperti paip membaca baris demi baris hanya untuk menghantar fail 1G melalui memori 10M mewakili ketebalan paip. Jadi, bacaan baris demi baris memerlukan memori 加载进去过 fail 1G.
try (BufferedReader in = new BufferedReader(new FileReader(file))) {
String line;
while ((line = in.readLine()) != null) {
// parse line
}
}
Tidak kira betapa besar fail itu, selagi panjang setiap baris adalah terhad, ia akan mengambil banyak masa untuk membaca keseluruhan fail, tetapi ia tidak akan mengambil terlalu banyak memori.
Baca dalam ketulan, baca satu set hasil untuk setiap ketul, dan akhirnya agregat set hasil Apabila memproses teks, lebih baik untuk mengetahui bilangan baris
linuxTerdapat arahan di atas dipanggil split yang boleh membahagikan teks besar dengan cepat dan serentak kepada fail kecil, dan kemudian pemprosesan adalah mudah. Algoritma ini dipanggil pengisihan luaran
Memori seperti kertas conteng Apabila anda selesai menulis artikel, terbalikkannya. Data terpakai dan tidak digunakan dibuang.
Contoh mudah, buat buff pembolehubah, tetapkan saiznya, buka strim fail dan isikannya. Selepas ia diisi, semak kandungan yang anda mahukan Jika ditemui, ia akan dikira dalam pembolehubah lain. Kemudian kosongkan buff dan teruskan memuatkan kandungan sekali lagi pada kedudukan yang dibaca sebelum ini... Sehingga bacaan selesai, statistik selesai.
Di sini ingatan adalah seperti paip membaca baris demi baris hanya untuk menghantar fail 1G melalui memori 10M mewakili ketebalan paip.
Jadi, bacaan baris demi baris memerlukan memori
加载进去过
fail 1G.Tidak kira betapa besar fail itu, selagi panjang setiap baris adalah terhad, ia akan mengambil banyak masa untuk membaca keseluruhan fail, tetapi ia tidak akan mengambil terlalu banyak memori.
Baca dalam ketulan, baca satu set hasil untuk setiap ketul, dan akhirnya agregat set hasil
Apabila memproses teks, lebih baik untuk mengetahui bilangan baris
linux
Terdapat arahan di atas dipanggilsplit
yang boleh membahagikan teks besar dengan cepat dan serentak kepada fail kecil, dan kemudian pemprosesan adalah mudah. Algoritma ini dipanggil pengisihan luaranMemori seperti kertas conteng Apabila anda selesai menulis artikel, terbalikkannya. Data terpakai dan tidak digunakan dibuang.
Contoh mudah, buat buff pembolehubah, tetapkan saiznya, buka strim fail dan isikannya. Selepas ia diisi, semak kandungan yang anda mahukan Jika ditemui, ia akan dikira dalam pembolehubah lain. Kemudian kosongkan buff dan teruskan memuatkan kandungan sekali lagi pada kedudukan yang dibaca sebelum ini... Sehingga bacaan selesai, statistik selesai.
Untuk sistem yang berbeza, API akan disediakan untuk mengendalikan fail yang lebih besar daripada memori, iaitu, fail akan dianggap sebagai memori:
内存映射
mmap
BuatPemetaan Fail