对于大文件或管道流,缓冲区支持的解决方案 (BufferedInputStream/ByteArrayInputStream) 显然不是要走的路。如果有人能告诉我处理这种情况的推荐方法,将不胜感激。
我能想到这一点 - 但可能不是最好或最有效的方法:
public class Streams {
public static void main(String[] args) throws IOException {
DataInputStream reader=null;
try{
try {
reader=new DataInputStream(new FileInputStream("/path/file"));
} catch (FileNotFoundException e1) {
throw e1;
}
while(true) {
try {
byte a=reader.readByte();
}
catch(EOFException e) {
//consume
}
catch (IOException e) {
//throw
throw e;
}
//do something
}
}
finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}