如何在java中将float和其他类型的值保存为字符



我想将所有变量保存到一个基于字符的文件(txt.etc)中

因为在java中,浮点是4字节,字符是2字节

有没有什么方法可以将浮点值保存为两个字符,并从这两个字符中安全地检索浮点值?

例如,如果浮点的位是

10101010 11111 010 10100011 10101010

然后将这些浮点值保存为具有完整位的字符那么这两个字符将是

10101010 11111 010和10100011 10101010

当我用文本编辑器或任何

打开文件时,它的外观并不重要

当java被设计为对C++的改进时,其意图是将java中的text作为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。它有writeUTF8writeInt等方便的方法。

最新更新