一个为所有IO重用而创建的FileUtils类.我们通过共享从一个Unix服务器向另一个服务器传输文件(随机数量)。
我的问题:随机一个文件将作为一个0 0kb的文件,但没有例外,并说它成功地传输。
我们使用的基本方法:
resultCode = 0;
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(fileLocation + orginalFile);
fos = new FileOutputStream(toFolder + destinationFile);
byte[] buf = new byte[1024];
int i = 0;
while ((i = fis.read(buf)) != -1) {
fos.write(buf, 0, i);
}
resultCode = 1;
} catch (Exception e) {
resultCode = 2;
//our logging
} finally {
try {
fis.close();
fos.close();
} catch (Exception e) {
//our logging
}
}
return resultCode;
}有什么可以导致这一切的想法吗?每次调用FileUtils类用于单个文件传输。
谢谢
发布于 2013-04-19 08:37:44
在关闭fos.flush()之前刷新文件输出流,我不确定它能解决您的问题,但值得一试:
公共空刷新()抛出IOException 刷新此输出流,并强制写入任何缓冲的输出字节。刷新的一般约定是,调用它是一种指示,如果以前写入的任何字节被输出流的实现所缓冲,这些字节应该立即被写入它们的预期目的地。
https://stackoverflow.com/questions/16100384
复制相似问题