我有一个文件,该文件在开头包含一定数量的纯文本,最后是二进制内容。二进制内容的大小由我阅读的一些纯文本行决定。
我使用 aBufferedReader
来读取各个行,但是它没有公开任何方法来引用读取字节数组。readUTF
for aDataInputStream
不会一直读到行尾,并且该方法readLine
已被弃用。
使用底层FileInputStream
读取返回空字节数组。关于如何解决这个问题的任何建议?
private DOTDataInfo parseFile(InputStream stream) throws IOException{
DOTDataInfo info = new DOTDataInfo();
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
int binSize = 0;
String line;
while((line = reader.readLine()) != null){
if(line.length() == 0)
break;
DOTProperty prop = parseProperty(line);
info.getProperties().add(prop);
if(prop.getName().equals("ContentSize"))
binSize = Integer.parseInt(prop.getValue());
}
byte[] content = new byte[binSize];
stream.read(content); //Its all empty now. If I use a DataInputStream instead, its got the values from the file
return info;
}