我正在尝试使用以InputStream
对象为源的API上传jar文件。在测试时,我注意到上传的文件比原始文件大,下载后我无法打开它。
我试图仅将资源复制到文件中并打开它,但这是相同的行为:
InputStream original = getClass().getResourceAsStream("/Example.jar");
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
for (int read; (read = original.read(buffer)) != -1; ) {
baos.write(buffer, 0, read);
}
original.close();
FileOutputStream fos = new FileOutputStream("target/copy.jar");
fos.write(baos.toByteArray());
fos.close();
复制过程出了什么问题?
更新:我尝试使用FileInputStream
读取jar文件,这使得复制的jar相同。但是,我仍然不知道为什么getResourceAsStream("/Example.jar")
返回更大的InputStream
。