Home > Java > JavaBase > body text

How to get the file size in java

Release: 2019-11-20 09:23:06
Original
6068 people have browsed it

How to get the file size in java

目前Java获取文件大小的方法有两种:

1、通过file的length()方法获取;

2、通过流式方法获取;

通过流式方法又有两种,分别是旧的java.io.*中FileInputStream的available()方法和新的java..nio.*中的FileChannel

下面依次介绍这几种方法:

首先选择一个文件并查看这个文件在windows中显示的大小,为了测试准确性,我这里选取了一个大文件(超过2GB)

查看这个文件在windows中显示的大小:

How to get the file size in java

可以看出这个文件的实际大小是3265574912Byte,下面通过代码来获取文件大小,并进行比较:

一、通过length方法:

1、创建一个文件:

File file = new File("E:\\全部软件\\软件压缩包\\Windows7_W64_SP1_ent.iso");
Copy after login
Copy after login

2、获取文件大小:

/**
 * 获取文件长度
 * @param file
 */
public static void getFileSize1(File file) {
  if (file.exists() && file.isFile()) {
    String fileName = file.getName();
    System.out.println("文件"+fileName+"的大小是:"+file.length());
  }
}
Copy after login

3、查看结果:

How to get the file size in java

二、通过file.io.*中的流式方法获取

1、创建一个文件

依旧使用上面的文件

File file = new File("E:\\全部软件\\软件压缩包\\Windows7_W64_SP1_ent.iso");
Copy after login
Copy after login

2、使用available方法获取:

/**
   * 根据java.io.*的流获取文件大小
   * @param file
   */
  public static void getFileSize2(File file){
    FileInputStream fis = null;
    try {
      if(file.exists() && file.isFile()){
        String fileName = file.getName();
        fis = new FileInputStream(file);
        System.out.println("文件"+fileName+"的大小是:"+fis.available()+"\n");
      }
    } catch (Exception e) {
      e.printStackTrace();
    }finally{
      if(null!=fis){
        try {
          fis.close();
        } catch (IOException e) {
          e.printStackTrace();
        }
      }
    }
  }
Copy after login

3、查看结果:

How to get the file size in java

三、通过file.nio.*中的FileChannel工具来获取文件大小:

1、创建一个文件

依旧使用相同的大文件:

File file1 = new File("E:\\全部软件\\软件程序\\httpwatch.exe");
Copy after login

2、使用FileChannel获取文件大小:

/**
 * 根据java.nio.*的流获取文件大小
 * @param file
 */
public static void getFileSize3(File file){
  FileChannel fc = null;
  try {
    if(file.exists() && file.isFile()){
      String fileName = file.getName();
      FileInputStream fis = new FileInputStream(file);
      fc = fis.getChannel();
      System.out.println("文件"+fileName+"的大小是:"+fc.size()+"\n");
    }
  } catch (Exception e) {
    e.printStackTrace();
  }finally{
    if(null!=fc){
      try {
        fc.close();
      } catch (IOException e) {
        e.printStackTrace();
      }
    }
  }
}
Copy after login

3、查看结果:

How to get the file size in java

更多java知识请关注java基础教程

The above is the detailed content of How to get the file size in java. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template