【问题标题】:Reading & writing variable length byte[] to file?读取和写入可变长度字节 [] 到文件?
【发布时间】:2014-04-07 20:39:01
【问题描述】:

我正在开发一个 Java 应用程序,它在文件中读取和写入字节数组(看似随机的字节)。

我想知道我可以用什么方法来分隔这些字节数组,因为如果我用 UTF-8 对它们进行编码,我可能会不小心遇到换行符,对吧?

那么bufferedReader.nextLine() 可能认为这是一个字节[] 的结尾?

反对者,愿意解释一下吗?

【问题讨论】:

  • 如果它们是二进制的,则不应将它们视为文本。
  • 如果您不编写文本数据,请不要使用用于读取文本文件的库。
  • 那我该如何读写字节呢?
  • 你能澄清一下什么是“正确”的字节数组分离吗?真的不清楚你想要实现什么。
  • 我想将字节数组写入文件。我不知道这些从哪里开始或结束,而且它们不是固定的长度。我知道读取文件的唯一方法是使用BufferedReader,当它读取包含二进制数据的文件时,它可能会读取换行符并将其解释为 2 个数组的分隔符。我想我会在实际数据开始之前将数组的长度添加到 2 个字节中。

标签: java file bufferedreader


【解决方案1】:

如果您正在写入和读取字节,您可能只想使用 DataOutputStreamDataInputStream

区分不同字节数组的方法是知道字节数和它们在文件中出现的顺序。

【讨论】:

  • 所以我必须存储字节数组的长度?
  • 或者以某种方式知道它是固定宽度。您可以使用前几个字节(一些固定数字)来告诉您给定的字符串有多长。查看网络字符串:en.wikipedia.org/wiki/Netstring
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 2020-09-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-03
相关资源
最近更新 更多