我有一个Java类,在其中通过InputStream读取数据。
byte[] b = null;
try {
b = new byte[in.available()];
in.read(b);
} catch (IOException e) {
e.printStackTrace();
}
当我从IDE(Eclipse)运行我的应用程序时,它完全正常。
但是,当我导出项目并将其打包成JAR文件时,read命令无法读取所有数据。我该如何解决?
这个问题通常发生在InputStream为File(约10kb)的情况下。
谢谢!
available()
的经典误用。Javadoc 中明确警告不要以这种方式使用它。 - user207421