java-如何在创建之前找出txt文件的大小

时间:2014-01-22 17:09:05

标签: java string file

我有一个字符串数组,我需要保存到txt文件中。我只允许制作最大64kb文件,所以我需要知道何时停止将字符串放入文件中。 是否有一些方法有一个字符串数组,我可以找到文件有多大而不创建文件?

2 个答案:

答案 0 :(得分:0)

文件是否是ASCII编码的?如果是这样,您编写的每个字符都将是1个字节。随时添加字符串长度,如果字符总数超过64k,您就知道要停止。不要忘记在字符串之间包含换行符,以防你这样做。

答案 1 :(得分: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

我们都知道所有数据类型最后只是字节。对于角色,我们有相同的东西,更多的细节。世界中的字符(字母,数字,符号等)映射到名为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

通过使用CharsetCharsetEncoderCharsetDecoder,您可以选择特定字符编码来保存文字,具体取决于文件的最终大小可能会有所不同。使用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,你可能已经知道了文件的最终大小,甚至没有保存它。

如有任何问题,请发表评论。