1

创建一个 FileUtils 类以重用所有 IO。我们通过共享将文件(随机数量)从一台 Unix 服务器传输到另一台。

我的问题: 随机一个文件将作为 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 类。

谢谢

4

1 回答 1

1

在关闭之前刷新文件输出流fos.flush(),我不确定它会解决你的问题,但值得一试:

public void flush() 抛出 IOException

刷新此输出流并强制写出任何缓冲的输出字节。flush 的一般约定是,调用它表示,如果先前写入的任何字节已被输出流的实现缓冲,则应立即将这些字节写入其预期目的地。

于 2013-04-19T08:37:44.657 回答