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

标签 java

我想将所有变量保存到基于字符的文件(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。它有一些方便的方法,例如writeUTF8writeInt

关于java - 如何在java中将 float 和其他类型的值保存为字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36938039/

相关文章:

java - 自动调用按钮

java - jUnit 4 中的 TestSuite 设置

java - 我无法在 Eclipse 中显示图像

在 Applet 中执行操作后 Java JDBC 连接丢失

java - 删除标点符号,保留字母和空格 - Java Regex

java - 需要帮助来简化解决方案

java - 使用 handler.obtainmessage 时出现空指针异常

java - 自定义十进制的正则表达式

java - 以编程方式 hibernate `cache usage`参数

java - Hibernate @OneToMany 注释到底是如何工作的?