我有一个字符串数组,我需要保存到txt文件中。我只允许制作最大64kb文件,所以我需要知道何时停止将字符串放入文件中。 是否有一些方法有一个字符串数组,我可以找到文件有多大而不创建文件?
答案 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://en.wikipedia.org/wiki/Character_encoding
通过使用Charset,CharsetEncoder和CharsetDecoder,您可以选择特定字符编码来保存文字,具体取决于文件的最终大小可能会有所不同。使用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,你可能已经知道了文件的最终大小,甚至没有保存它。
如有任何问题,请发表评论。