/ / Použite metódu na získanie riadku po riadku # - java, apache-commons-io

Util spôsob, ako dostať riadok po riadku # - java, apache-commons-io

Existuje nejaká metóda Util na získanie obsahu riadku pomocou riadku # z daného súboru?

odpovede:

2 pre odpoveď č. 1

Najjednoduchším prístupom je načítať všetky riadky do zoznamu a vyhľadať linky podľa čísla v tomto zozname. Môžeš použiť

List<String> lines = FileUtils.readLines(file);

Môj súbor je 3 GB a nechcem ukladať všetky riadky do mojej pamäte Java

Uistil by som sa, že máte dostatok pamäte. Môžete si kúpiť 32 GB za menej ako 200 dolárov.

Avšak za predpokladu, že to nie je možnéindexujte súbor tak, že ho prečítate, keď uložíte posun každého riadku do iného súboru. Môže to byť 32-bitový ofset, ale ak by ste použili 64-bitový ofset, bolo by to jednoduchšie / škálovateľnejšie.

Potom môžete vyhľadať posunutie každého riadku a nasledujúci, aby ste určili, kde sa má každý riadok prečítať. Očakával by som, že to bude trvať asi 10 mikrosekúnd, ak sa implementuje efektívne.

BTW: Keby ste ho načítali do pamäte Java, bolo by to asi 100x rýchlejšie.