第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用Java逐行讀取大型文本文件?

如何使用Java逐行讀取大型文本文件?

紅糖糍粑 2019-06-01 14:21:58
如何使用Java逐行讀取大型文本文件?我需要使用Java逐行讀取5-6GB左右的大型文本文件。我怎么能這么快做呢?
查看完整描述

4 回答

?
回首憶惘然

TA貢獻1847條經(jīng)驗 獲得超11個贊

一個常見的模式是使用

try (BufferedReader br = new BufferedReader(new FileReader(file))) {
    String line;
    while ((line = br.readLine()) != null) {
       // process the line.
    }}

如果假設沒有字符編碼,則可以更快地讀取數(shù)據(jù)。ASCI-7,但不會有太大的區(qū)別。你對數(shù)據(jù)的處理很可能需要更長的時間。

編輯:一種較不常見的模式,它避免了line漏水。

try(BufferedReader br = new BufferedReader(new FileReader(file))) {
    for(String line; (line = br.readLine()) != null; ) {
        // process the line.
    }
    // line is not visible here.}

更新:在Java 8中,您可以做到

try (Stream<String> stream = Files.lines(Paths.get(fileName))) {
        stream.forEach(System.out::println);}

注意:您必須將流放在試著用資源塊,以確保對它調用#CLOSE方法,否則基礎文件句柄在GC很久之后才會關閉。


查看完整回答
反對 回復 2019-06-01
?
富國滬深

TA貢獻1790條經(jīng)驗 獲得超9個贊

可以指定緩沖區(qū)大小,也可以使用默認大小。對于大多數(shù)用途,缺省值都足夠大。

//?Open?the?fileFileInputStream?fstream?=?new?FileInputStream("textfile.txt");
BufferedReader?br?=?new?BufferedReader(new?InputStreamReader(fstream));String?strLine;
//Read?File?Line?By?Linewhile?((strLine?=?br.readLine())?!=?null)???{
??//?Print?the?content?on?the?console
??System.out.println?(strLine);}//Close?the?input?streamfstream.close();


查看完整回答
反對 回復 2019-06-01
?
汪汪一只貓

TA貢獻1898條經(jīng)驗 獲得超8個贊

一次爪哇-8發(fā)布(2014年3月),您將能夠使用流:

try (Stream<String> lines = Files.lines(Paths.get(filename), Charset.defaultCharset())) {
  lines.forEachOrdered(line -> process(line));}

打印文件中的所有行:

try (Stream<String> lines = Files.lines(file, Charset.defaultCharset())) {
  lines.forEachOrdered(System.out::println);}


查看完整回答
反對 回復 2019-06-01
?
有只小跳蛙

TA貢獻1824條經(jīng)驗 獲得超8個贊

下面是一個包含完整錯誤處理和支持前Java 7字符集規(guī)范的示例。使用Java 7,您可以使用具有資源的嘗試語法,這使代碼更加簡潔。

如果您只想要默認的字符集,可以跳過InputStream并使用FileReader。

InputStream ins = null; // raw byte-streamReader r = null; // cooked readerBufferedReader br = null; // buffered for readLine()try {
    String s;
    ins = new FileInputStream("textfile.txt");
    r = new InputStreamReader(ins, "UTF-8"); // leave charset out for default
    br = new BufferedReader(r);
    while ((s = br.readLine()) != null) {
        System.out.println(s);
    }}catch (Exception e){
    System.err.println(e.getMessage()); // handle exception}finally {
    if (br != null) { try { br.close(); } catch(Throwable t) { /* ensure close happens */ } }
    if (r != null) { try { r.close(); } catch(Throwable t) { /* ensure close happens */ } }
    if (ins != null) { try { ins.close(); } catch(Throwable t) { /* ensure close happens */ } }}

以下是Groovy版本,具有完全錯誤處理:

File f = new File("textfile.txt");f.withReader("UTF-8") { br ->
    br.eachLine { line ->
        println line;
    }}


查看完整回答
反對 回復 2019-06-01
  • 4 回答
  • 0 關注
  • 2012 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號