我有一个文件,它被两部分分割为“\ n \ n” - 第一部分不是太长字符串,第二部分是字节数组,这可能会很长。Java:分两部分读取文件 - 部分为字符串,部分为字节[]
我试图读取该文件,如下所示:尽管
byte[] result;
try (final FileInputStream fis = new FileInputStream(file)) {
final InputStreamReader isr = new InputStreamReader(fis);
final BufferedReader reader = new BufferedReader(isr);
String line;
// reading until \n\n
while (!(line = reader.readLine()).trim().isEmpty()){
// processing the line
}
// copying the rest of the byte array
result = IOUtils.toByteArray(reader);
reader.close();
}
结果数组都是应该的大小,它的内容被破坏。如果我试图直接在fis
或isr
上使用toByteArray
,则结果内容为空。
如何正确高效地读取文件的其余部分?
谢谢!
如果你还在'if(current =='\ t')'块内部放置了'wasLast = false;',以防万一遇到一个空的键值对导致'... \ n \ t \ n ...'? :) – 2013-03-01 17:10:36