【发布时间】:2014-08-08 14:05:10
【问题描述】:
我的文件似乎经常出现意外结束。我的文件首先包含几个字符串,然后是字节数据。
该文件包含几个单独的字符串,我的代码可以正确读取。
但是,当我开始读取字节时,它什么也没有返回。我很确定这与我使用阅读器有关。 BufferedReader 是否读取整个流?如果是这样,我该如何解决?
我检查了文件,它确实包含字符串后面的大量数据。
InputStreamReader is = new InputStreamReader(in);
BufferedReader br = new BufferedReader(is);
String line;
{
line = br.readLine();
String split[] = line.split(" ");
if (!split[0].equals("#binvox")) {
ErrorHandler.log("Not a binvox file");
return false;
}
ErrorHandler.log("Binvox version: " + split[1]);
}
ByteArrayOutputStream buffer = new ByteArrayOutputStream();
int nRead, cnt = 0;
byte[] data = new byte[16384];
while ((nRead = in.read(data, 0, data.length)) != -1) {
buffer.write(data, 0, nRead);
cnt += nRead;
}
buffer.flush();
// cnt is always 0
binvox格式如下:
#binvox 1
dim 64 40 32
translate -3 0 -2
scale 6.434
data
[byte data]
我基本上是在尝试将以下 C 代码转换为 Java: http://www.cs.princeton.edu/~min/binvox/read_binvox.html
【问题讨论】:
-
文件在
#binvox标记后是否包含二进制或文本数据? -
我添加了 binvox 标头格式。这是 C 等价物:cs.princeton.edu/~min/binvox/read_binvox.html
标签: java