我想将所有变量保存到基于字符的文件(txt..等)
因为在java中 float 是4个字节,字符是2个字节
是否有任何方法可以将浮点值保存到 2 个字符中并安全地从这两个字符中检索浮点值?
例如,如果浮点的位是
10101010 11111010 10100011 10101010
然后将这些 float 保存为字符,并且位完好无损 那么这两个字符将是
10101010 11111010 和 10100011 10101010
当我用文本编辑器或其他东西打开文件时,它的外观并不重要
最佳答案
当 java 被设计为对 C++ 的改进时,其目的是将 java 中的文本作为 Unicode,因此所有脚本都可以组合起来。
String、char、Reader、Writer
- 用于 Unicode 文本byte[]、InputStream、OutputStream
- 用于二进制数据
因此 char
是两个字节(使用 Unicode 格式 UTF-16)。
由于 UTF-16、UTF-8 等中的特殊转义,并非每个字节序列都可以写为文本。
因此,您应该考虑将所有内容存储为纯二进制数据,将字符串存储为 UTF-8 字节序列:
String s = ...
byte[] bytes = s.getBytes(StandardCharsets.UTF_8);
为此,您必须确切地知道自己写了什么,以及如何读回它。您可以使用DataOutputStream
。它有一些方便的方法,例如writeUTF8
、writeInt
。
关于java - 如何在java中将 float 和其他类型的值保存为字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938039/