java file对象获取文件大小

import java.io.File;
import java.text.DecimalFormat;
import java.io.FileInputStream;

public class GetFileSize
{
    public longgetFileSizes(File f) throws Exception{//取得文件大小
       long s=0;
       if (f.exists()) {
           FileInputStream fis = null;
           fis = new FileInputStream(f);
          s= fis.available();
       } else {
           f.createNewFile();
           System.out.println("文件不存在");
       }
       return s;
    }
    // 递归
    public longgetFileSize(File f)throws Exception//取得文件夹大小
    {
       long size = 0;
       File flist[] = f.listFiles();
       for (int i = 0; i < flist.length; i++)
       {
           if (flist[i].isDirectory())
           {
               size = size + getFileSize(flist[i]);
           } else
           {
               size = size + flist[i].length();
           }
       }
       return size;
    }

    publicString FormetFileSize(long fileS) {//转换文件大小
       DecimalFormat df = new DecimalFormat("#.00");
       String fileSizeString = "";
       if (fileS < 1024) {
           fileSizeString = df.format((double) fileS) + "B";
       } else if (fileS < 1048576) {
           fileSizeString = df.format((double) fileS / 1024) + "K";
       } else if (fileS < 1073741824) {
           fileSizeString = df.format((double) fileS / 1048576) + "M";
       } else {
           fileSizeString = df.format((double) fileS / 1073741824) +"G";
       }
       return fileSizeString;
    }
   
    public longgetlist(File f){//递归求取目录文件个数
       long size = 0;
       File flist[] = f.listFiles();
       size=flist.length;
       for (int i = 0; i < flist.length; i++) {
           if (flist[i].isDirectory()) {
               size = size + getlist(flist[i]);
               size--;
           }
       }
       return size;

 

   }
   
    publicstatic void main(String args[])
    {
       GetFileSize g = new GetFileSize();
       long startTime = System.currentTimeMillis();
       try
       {
           long l = 0;
           String path = "C:\\WINDOWS";
           File ff = new File(path);
           if (ff.isDirectory()) { //如果路径是文件夹的时候
               System.out.println("文件个数          " + g.getlist(ff));
               System.out.println("目录");
               l = g.getFileSize(ff);
               System.out.println(path + "目录的大小为:" + g.FormetFileSize(l));
           } else {
               System.out.println("    文件个数          1");
               System.out.println("文件");
               l = g.getFileSizes(ff);
               System.out.println(path + "文件的大小为:" + g.FormetFileSize(l));
           }
           
       } catch (Exception e)
       {
           e.printStackTrace();
       }
       long endTime = System.currentTimeMillis();
       System.out.println("总共花费时间为:" + (endTime - startTime) +"毫秒...");
    }
}

  • 16
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 在 Java 中,可以使用 `java.io.File` 类来获取文件的行数和大小。 获取文件的行数: 1. 使用 `java.io.BufferedReader` 和 `java.io.FileReader` 类打开文件,然后逐行读取文件,累加行数。代码示例如下: ``` import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class Main { public static void main(String[] args) throws IOException { File file = new File("example.txt"); int lineCount = 0; try (BufferedReader reader = new BufferedReader(new FileReader(file))) { while (reader.readLine() != null) { lineCount++; } } System.out.println("Number of lines: " + lineCount); } } ``` 获取文件的大小: 1. 使用 `java.io.File` 类的 `length()` 方法获取文件的大小,代码示例如下: ``` import java.io.File; public class Main { public static void main(String[] args) { File file = new File("example.txt"); long size = file.length(); System.out.println("Size of file: " + size + " bytes"); } } ``` ### 回答2: 要使用javaFile获取文件的行数和大小,可以按照以下步骤进行操作: 1. 首先,需要创建一个File对象,指向要获取行数和大小的文件。可以使用File类的构造方法,传入文件的路径作为参数。 2. 为了获取文件的行数,可以使用BufferedReader类。首先创建一个BufferedReader对象,并传入一个FileReader对象作为参数。FileReader对象用于读取文件内容。 3. 创建一个计数器变量,用于统计文件的行数。初始化为0。 4. 使用BufferedReader对象的readLine()方法逐行读取文件内容,每读取一行,将计数器变量加1。 5. 当读取到文件的末尾时,readLine()方法返回null,此时可以停止读取,得到文件的行数。 6. 获取文件的大小是通过File类的length()方法来实现的。调用File对象的length()方法即可得到文件的字节大小。 7. 最后,将得到的文件行数和大小进行输出或者保存。 下面是示例代码: ```java import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class FileSizeAndLineCounter { public static void main(String[] args) { File file = new File("文件路径"); // 替换成实际文件路径 // 获取文件的行数 int lineCount = 0; try (BufferedReader br = new BufferedReader(new FileReader(file))) { String line; while ((line = br.readLine()) != null) { lineCount++; } } catch (IOException e) { e.printStackTrace(); } // 获取文件的大小 long fileSize = file.length(); System.out.println("文件的行数:" + lineCount); System.out.println("文件的大小:" + fileSize + "字节"); } } ``` 使用上述代码,可以通过File获取文件的行数和大小。需要注意的是,要替换代码中的"文件路径"部分为你实际的文件路径。 ### 回答3: 要使用Java中的File类来获取文件的行数和大小,可以按照以下步骤进行操作: 1. 首先,创建一个File对象,指定要获取信息的文件路径。 2. 使用FileReader类和BufferedReader类,以行为单位读取文件内容。定义一个计数器变量lineCount来记录行数。 3. 在循环中,使用BufferedReader的readLine()方法读取每一行内容,如果读取到的内容不为空,则行数加1。 4. 完成循环后,lineCount变量即为文件的行数。 5. 使用File对象的length()方法,可以获取文件的大小,以字节为单位。 6. 最后,将得到的行数和文件大小进行输出或存储等后续处理。 以下是示例代码: ```java import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.IOException; public class FileUtil { public static void main(String[] args) { String filePath = "文件路径"; // 输入要获取信息的文件路径 File file = new File(filePath); int lineCount = getLineCount(file); long fileSize = file.length(); System.out.println("文件行数:" + lineCount); System.out.println("文件大小:" + fileSize + "字节"); } public static int getLineCount(File file) { int lineCount = 0; try (BufferedReader reader = new BufferedReader(new FileReader(file))) { String line; while ((line = reader.readLine()) != null) { lineCount++; } } catch (IOException e) { e.printStackTrace(); } return lineCount; } } ``` 上述代码中,需要将"文件路径"替换为实际的文件路径,然后运行程序即可获取文件的行数和大小。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值