Java:多个outputstreams单个文件
我需要读取多个小文件并将它们附加到一个更大的文件中Java:多个outputstreams单个文件,java,fileoutputstream,Java,Fileoutputstream,我需要读取多个小文件并将它们附加到一个更大的文件中 Base64OutputStream baos = new Base64OutputStream(new FileOutputStream(outputFile, true)); for (String fileLocation : fileLocations) { InputStream fis = null; try { fis = new FileInputStream(new
Base64OutputStream baos = new Base64OutputStream(new FileOutputStream(outputFile, true));
for (String fileLocation : fileLocations) {
InputStream fis = null;
try
{
fis = new FileInputStream(new File(fileLocation));
int bytesRead = 0;
byte[] buf = new byte[65536];
while ((bytesRead=fis.read(buf)) != -1) {
if (bytesRead > 0) baos.write(buf, 0, bytesRead);
}
}
catch (Exception e) {
logger.error(e.getMessage());
}
finally{
try{
if(fis != null)
fis.close();
}
catch(Exception e){
logger.error(e.getMessage());
}
}
}
所有这些都很标准,但我发现,除非我在每个输入文件中打开一个新的baos(包括在循环中),否则由baos编写的第一个文件后面的所有文件都是错误的(不正确的输出)
问题是:
- 有人告诉我,为同一资源来回打开/关闭outputstream不是一个好做法,为什么
- 为什么使用单个输出流不能提供与多个单独输出流相同的结果