2

我想使用 java 读取文件(我知道 java IO utils 可以完成所需的操作),但问题是:我要访问的文件必须从远程机器下载。那么我怎么知道文件下载已完成还是仍在继续?我正在使用一个linux盒子。有没有办法检查java中的下载完成状态?

提前致谢

4

1 回答 1

2

我正在使用它来检查正在复制的文件是否已完成的状态。也许这对你也有帮助。如果我错了,请纠正我。

  1. 获取文件大小
  2. 等待一段时间(比如 1 秒)
  3. 检查文件大小
  4. 如果此时正在下载文件,那么新的大小将大于之前的大小;所以重复步骤 - 1、2、3,直到你得到确切的尺寸。

代码示例

// sourceFile is the downloading file
if (sourceFile.exists()) {
    try {
        long size = sourceFile.length();
        Thread.sleep(1000);
        long newSize = sourceFile.length();
        if (size < newSize) {
            while (size < newSize) {
                System.out.println("downloading...");
                size = sourceFile.length();
                Thread.sleep(1000);
                newSize = sourceFile.length();
            }
        }
        System.out.println("File Downloaded");
        System.out.println("Size: " + newSize);
    } catch (InterruptedException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
于 2013-07-08T17:58:29.967 回答