java-io - 我想使用Java获取文件的下载状态,java中有什么方法可以做到这一点吗?请阅读完整说明

标签 java-io

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

提前致谢

最佳答案

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

  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();
    }
}

关于java-io - 我想使用Java获取文件的下载状态,java中有什么方法可以做到这一点吗?请阅读完整说明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15293850/

相关文章:

synchronous - Apache FileUtils 中的方法是否执行同步(阻塞)I/O?

java - 使用 Serialized 保存信息

java - 用java写入文件

java - File.delete() 方法不起作用..你能帮我吗?

java - 仅当所有文件都可删除时才删除文件 - 放过无辜者

java - 如何使用java重命名linux目录中的所有文件?

java - For 循环检查文件是否存在以及是否不创建文件

Android 蓝牙 socket.connect 失败;抛出java IO异常

java - 放入 ByteBuffer 然后将其写入文件比写入单个字段更有效

Java 文件操作