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

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

在刷新之前將信息添加到 bufferWriter java

在刷新之前將信息添加到 bufferWriter java

慕村225694 2021-10-17 10:36:09
據(jù)我所知,BufferedWriter存儲信息之前,我寫在文件執(zhí)行使用在文件中寫入它的行為之前flush(),Append()等等。我從多個(gè)來源收集信息,所以目前我正在做的是在每個(gè)來源中循環(huán)并每次將其直接附加到文件中,但我想要完成的是BufferedWriter在完成循環(huán)后添加所有信息,將它寫入文件,怎么做?我試圖通過不多次將數(shù)據(jù)刷新到文件中來提高性能。性能是問題,因?yàn)檫@可能會循環(huán) 100 萬次。這是我目前正在做的事情:打開 BufferedWriter從不同的源讀取數(shù)據(jù)并存儲在緩沖區(qū)中將存儲的數(shù)據(jù)附加到文本文件中(此處緩沖區(qū)已清空)重復(fù)步驟 2.- 和 3.- 50 次關(guān)閉文本文件這是我想要做的:打開 BufferedWriter從不同的源讀取數(shù)據(jù)并存儲在緩沖區(qū)中重復(fù)步驟 2.- 50 次附加所有收集的數(shù)據(jù)(在 50 個(gè)循環(huán)中收集的數(shù)據(jù))關(guān)閉文件這是代碼。 for (int mainLoop = 0; mainLoop < 50; mainLoop++){        try {            BufferedWriter writer = writer = new BufferedWriter(new FileWriter                    ("path to file in computer" + mainLoop + ".txt", true));        for(int forloop = 0; forloop < 50; forloop++) {            final Document pageHtml= Jsoup.connect("link to a page").get();            Elements body = pageHtml.select("p");            writer.append(System.getProperty("line.separator"));            writer.append(System.getProperty("line.separator"));            writer.append(body.text());            System.out.println(forloop);        }        writer.close();        } catch (IOException e) {            e.printStackTrace();        }continue;    }
查看完整描述

2 回答

?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

我試圖通過不多次將數(shù)據(jù)刷新到 de 文件來提高性能

每次寫入后是否手動(dòng)刷新數(shù)據(jù)?不要那樣做。

否則,在實(shí)例化 BufferedWriter 時(shí)指定更大的大小。

您可以選擇使用 StringBuilder 首先聚合輸出。但是,我假設(shè)您的輸出比您想存儲在內(nèi)存中的要多。

最后,真的有性能成本嗎?

===

BufferedWriter 將優(yōu)化它執(zhí)行的實(shí)際寫入。只要您指定一個(gè)大的緩沖區(qū)大小,例如 10,000,在緩沖區(qū)滿之前,對緩沖區(qū)的多次小寫入將不會導(dǎo)致寫入。我看到一條評論說您正在“清除”緩沖區(qū)。不要那樣做。把 BufferedWriter 放在一邊,讓它做它自己的事。

如果您正在積累信息,然后由于某種原因?qū)⑵鋪G棄,請使用 StringBuilder 積累,然后將 StringBuild 內(nèi)容寫入 Writer。


查看完整回答
反對 回復(fù) 2021-10-17
?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊

緩沖寫入器將在您指示時(shí)刷新。并且任何時(shí)候緩沖區(qū)變滿。確定緩沖區(qū)何時(shí)變滿可能很棘手。真的,你不應(yīng)該關(guān)心。無論何時(shí)刷新,緩沖寫入器都將提高性能。相反,您的輸出代碼應(yīng)該BufferedWriter 任何其他Writer.

我還在您的代碼中看到您反復(fù)打開和關(guān)閉輸出文件。你幾乎肯定不需要這樣做。而是在程序的更高級別打開和關(guān)閉文件,因此它在每次迭代時(shí)都保持打開狀態(tài)。


查看完整回答
反對 回復(fù) 2021-10-17
  • 2 回答
  • 0 關(guān)注
  • 156 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

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