簡體   English   中英

使用Stream從BufferedReader讀取行

[英]Reading lines from BufferedReader using Stream

我正在嘗試讀取一個巨大的文件,其中包含大約十億行。 我想使用Stream進行並行處理並將每一行插入數據庫中。 我正在做這樣的事情,

br = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
list = br.lines().parallel().collect(Collectors.toList());

這會將所有行存儲在列表中。 但是我不想將所有行都保留在內存中。 因此,我想在讀取一行后將它們保存到數據庫中。 請幫助我實現這一目標。 另外,指導我調整這個想法。

提前致謝 :)

似乎您需要使用forEach並傳遞一個Consumer ,它將使用該行並將其存儲在數據庫中

lines.parallel()
     .forEach(line -> {
        //Invoke the code passing the 'line' that persists in the DB...something like
        dbWriter.write(line);
     });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM