最初にある程度のプレーンテキストが含まれ、最後にバイナリコンテンツが続くファイルがあります。バイナリ コンテンツのサイズは、読み取ったプレーン テキスト行のいずれかによって決まります。
個々の行を読み取るために a を使用していBufferedReader
ましたが、バイト配列を読み取るために参照するメソッドは公開されていません。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;
}