【问题标题】:Java FileOutputStream, write doubles to fileJava FileOutputStream,将双打写入文件
【发布时间】:2014-01-14 16:23:09
【问题描述】:

经过一番谷歌搜索后,我认为最好在这里提出这个问题;

尝试编写一个程序,从 .txt 文件中读取双值(没问题),将它们写入二进制文件,然后将它们读回(从二进制文件)。

我在这件事上使用 FileInputStream/FileOutputStream,我认为这是错误的做法(但我对此非常绿色,并且只对这两个进行了指示)

但这些方法只读取/写入 int 值,或更正确地说,附加/返回的 int 的前 8 位。

我知道 double 是 64 位的,所以这会立即解决问题。如果我使用了错误的类,我会很乐意更改它们。

干杯!

【问题讨论】:

  • this 可能会有所帮助。
  • 虽然直接使用 FileIn/OutputStream 没有任何问题,但将它们包装在 DataIn/OutputStream 中更容易,因为它可以让您读取/写入许多常见类型。

标签: java stream fileinputstream fileoutputstream


【解决方案1】:

虽然并非不可能,但为这项任务使用相对原始的流并不是最简单的方法。 RandomAccessFile 具有 writeDouble / readDouble 方法,我认为它们完全符合您的要求 - 即,将原始值“原样”转储到文件中并将它们读回。

【讨论】:

    【解决方案2】:

    您需要将 FileOutputStream 包装在 ObjectOutputStream 中,并将 FileInputStream 包装在 ObjectInputStream 中。这些类具有写入/读取 Java 原语的方法。

    【讨论】:

      猜你喜欢
      • 2019-09-06
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-12
      • 2014-07-29
      • 1970-01-01
      • 2013-08-22
      • 2021-01-09
      相关资源
      最近更新 更多