У меня есть файл, который содержит некоторое количество простого текста в начале, за которым следует двоичное содержимое в конце. Размер двоичного содержимого определяется какой-то одной из строк обычного текста, которые я прочитал.
Я использовал BufferedReader
для чтения отдельных строк, однако он не предоставляет методов для ссылки на чтение байтового массива. readUTF
для DataInputStream
не читает полностью до конца строки, а метод 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;
}