【发布时间】:2012-11-27 13:40:41
【问题描述】:
我从输入流中读取数据,并在 finally 块中尝试通过调用 in.close(); 来关闭它; 但是 main 的执行被阻止了。出路是什么?
根据建议,我使用的代码是,
if (!processed) {
System.out.println("in processed");
byte[] contents = new byte[(int) fileSplit.getLength()];
Path file = fileSplit.getPath();
FileSystem fs = file.getFileSystem(conf);
FSDataInputStream in = null;
try {
in = fs.open(file);
IOUtils.readFully(in, contents, 0, contents.length);
value.set(contents, 0, contents.length);
} finally {
System.out.println("before close stream");
IOUtils.closeStream(in);
}
processed = true;
return true;
}
System.out.println("out of processed");
return false;
}
【问题讨论】:
-
不显示其他人无法轻易展示的源代码。
-
@AdityaJain @ ILLA:完成:)
-
是控制台上的“关闭流之前”打印
-
@BhavikShah : 是的..我把那个打印出来了..
标签: java io inputstream