2017-10-18 202 views
0

對於Web項目,我正在將大部分文本寫入網頁(表格)或甚至更大(可能是幾MB)CSV文件下載。 處理此問題的java方法接收一個StringBuilder內容字符串,它最初(由本模塊的創建者)在一個循環中通過字符發送char:對HttpServletResponse.getOutputStream.print(字符串)和getWriter(字符串)的性能和大小限制

response.getOutputStream()。write(content.charAt(i ))。

在詢問有關循環時,給出的理由是他認爲字符串可能太大而無法一次寫入。 (使用java 1.6)。 我無法在任何地方找到任何大小限制,然後問題來了使用哪種方法:print()或getWriter()? 字符串中的數據全部是文本。

回答

1

他假定錯了。如果有的話,它是低效的,或者至少一次無法做到這一點。如果你在內存中有String,你可以一口氣寫出來而不用擔心。

如果您只寫文字,請使用WriterOutputStream用於二進制數據(儘管您可以將它封裝在OutputStreamWriter中以在兩者之間進行轉換)。見Writer or OutputStream?