java如何高效读写10G以上大文件
黄舟
黄舟 2017-04-18 10:52:01
0
5
547

有一份10G以上大文本文件,需要替换里面的一些文本信息(每一行都有),如何高效读并替换掉生成新的文件

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

membalas semua(5)
伊谢尔伦
  1. Pisah kepada berbilang fail dahulu

  2. Berbilang utas mengendalikan berbilang fail untuk mengelakkan dua utas mengendalikan fail yang sama

  3. Baca fail baris demi baris dan tulis fail baharu baris demi baris

  4. Gabung semua fail

1,4 Hanya gunakan arahan linux~

刘奇

Fail fail = Fail baharu(laluan fail);
BufferedInputStream fis = BufferedInputStream baharu(FailInputStream(fail) baharu);
Pembaca BufferedReader = BufferedReader baharu(InputStreamReader baharu(fis,"utf-8"),510241024);
Baris rentetan = "";
sementara((baris = pembaca .readLine()) != null){

//进行替换操作和其他业务    

}

迷茫

Untuk meningkatkan prestasi, anda mungkin memerlukan IO yang dipetakan Untuk butiran, sila rujuk:

  1. Mengapa menggunakan Fail Dipetakan Memori atau MappedByteBuffer dalam Java

  2. operasi baca dan tulis fail besar java, MappedByteBuffer java nio, pemetaan fail/memori yang cekap

  3. Perbandingan ringkas prestasi java.io dan java.nio

Peter_Zhu

Jika ia adalah penggantian teks yang mudah, hanya gunakan arahan sed Linux.

Jika ia adalah penggantian teks yang lebih kompleks, lihat di bawah:

  1. http://stackoverflow.com/ques...

  2. http://www.baeldung.com/java-...

刘奇

用spark分析、
lines=sc.textFile("your_file");
filterlines=lines.filter(your_filter_function)
filterlines.xxx()

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!