Java 中获取文件大小

本文详细介绍了如何在Java中使用File类获取本地文件大小以及通过URLConnection获取网络文件大小的示例代码,包括使用exists()和length()方法以及openStream()和读取输入流的过程。
摘要由CSDN通过智能技术生成

Java 中获取文件大小

1,。在 Java 中获取本地文件大小,可以使用 java.io.File 类来实现,以下是一个示例代码:

import java.io.File;

public class FileSizeGetter {
    public static void main(String[] args) {
        // 替换为线上文件的路径
        String filePath = "/your/online/file/path/file.txt";

        File file = new File(filePath);
        if (file.exists()) {
            long size = file.length();
            System.out.println("文件大小:" + size + " 字节");
        } else {
            System.out.println("文件不存在");
        }
    }
}

在上述代码中,首先创建了一个 File 对象,通过指定线上文件的路径来实例化该对象。然后,使用 exists() 方法检查文件是否存在。如果文件存在,使用 length() 方法获取文件的大小,并将其输出到控制台。

请注意,确保将 filePath 替换为实际的线上文件路径。

2.在 Java 中获取网络文件大小,可以通过以下步骤实现:

1)使用 URLConnection 类建立与网络文件的连接。

2)获取输入流,并通过读取流的方式来获取文件大小。

下面是一个示例代码:

import java.io.InputStream;
import java.net.URL;

public class NetworkFileSizeGetter {

    public static long getNetworkFileSize(String fileUrl) {
        try {
            URL url = new URL(fileUrl);
            InputStream inputStream = url.openStream();
            // 创建一个字节数组用于读取流中的数据
            byte[] buffer = new byte[1024];
            int bytesRead;
            long fileSize = 0;

            while ((bytesRead = inputStream.read(buffer))!= -1) {
                fileSize += bytesRead;
            }
            inputStream.close();
            return fileSize;
        } catch (Exception e) {
            e.printStackTrace();
            return -1;
        }
    }

    public static void main(String[] args) {
        String fileUrl = "http://example.com/file.txt";
        long fileSize = getNetworkFileSize(fileUrl);
        if (fileSize!= -1) {
            System.out.println("网络文件大小:" + fileSize + " 字节");
        } else {
            System.out.println("获取文件大小失败");
        }
    }
}

在上述示例中:

  • getNetworkFileSize 方法接受网络文件的 URL 作为参数。
  • 通过 URL 对象打开输入流。
  • 使用循环逐字节读取流中的数据,并累计文件大小。
  • 最后关闭输入流并返回文件大小。

请注意,这只是一个简单的示例,实际应用中可能需要处理更多的异常情况和错误处理。

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值