2014-01-22 33 views
0

我有一個字符串數組,我需要保存到一個txt文件中。我只允許創建最大64kb的文件,所以我需要知道什麼時候停止將字符串放入文件中。 有沒有一些方法,有一個字符串數組,我可以找出有多大的文件將沒有創建文件?java-how如何在創建之前找出txt文件的大小

+1

而不是寫入'FileOutputStream',寫入'ByteArrayOutputStream'。如果超過64kb就停止。如果沒有,請將其複製到文件中。 –

回答

0

該文件將被ASCII編碼?如果是這樣,你寫的每個字符將是1個字節。隨時添加字符串長度,如果字符總數大於64k,則停止。不要忘記在字符串之間加入換行符,以防你這樣做。

0

Java帶來了一個庫來輸入和輸出名爲NIO的數據。我想你應該知道如何使用它。如果你不知道如何使用NIO,看看下面的鏈接瞭解詳情:

http://en.wikipedia.org/wiki/New_I/O

https://blogs.oracle.com/slc/entry/javanio_vs_javaio

http://docs.oracle.com/javase/tutorial/essential/io/fileio.html

我們都知道,所有的數據類型都只是在字節結束。有了角色,我們擁有同樣的東西,並帶有更多細節。 World中的字符(字母,數字,符號等)被映射到名爲Unicode的表格,並且使用某些字符編碼算法,當您將文本保存到文件時,可以獲得一定數量的字節。我怎麼會花時間談論它給你,我建議你看一看以下鏈接瞭解更多關於字符編碼:

http://www.w3schools.com/tags/ref_charactersets.asp

https://stackoverflow.com/questions/3049090/character-sets-explained-for-dummies

https://www.w3.org/International/questions/qa-what-is-encoding.en

http://unicode-table.com/en/

http://en.wikipedia.org/wiki/Character_encoding

通過使用Charset,CharsetEncoderCharsetDecoder,您可以選擇特定的字符編碼來保存您的文本,具體取決於您的文件的最終大小可能會有所不同。使用UTF-8(這裏的8表示位),您將最終將每個字符保存在文件中,每個字符各有1個字節。使用UTF-16(這裏的16位表示位),您將使用2個字節保存每個字符。這意味着,當您使用編碼時,您最終會爲每個保存的字符保留一定數量的字節。在下面的鏈接,你可以找到當前的Java API支持的實際編碼:

http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html

隨着NIO庫,你並不需要實際保存文件知道你的尺寸。如果你只是使用ByteBuffer,你甚至可能已經知道你的文件的最終大小,甚至沒有保存它。

有任何問題,請評論。

相關問題