java7读取文件大小

来源:互联网 发布:阿里云流量收费标准 编辑:程序博客网 时间:2024/04/30 01:18

1      场景描述

Java7读取文件属性,比如文件大小如何操作?文件或目录呢?如何遍历目录?

2      工具类

这个工具类只是将long型的字节转换为字符串显示 

public class FileSizeUtil {/** *  * @param size 文件的字节大小 * @return * [0,1024] <--> *B *  (1024,1024*1024]<--> *KB *  (1024*1024,1024*1024*1024]<--> *MB *  (1024*1024*1024,1024*1024*1024*1024]<--> *GB *  (1024*1024*1024*1024,1024*1024*1024*1024*1024]<--> *TB *   */public static String getSize(long size){//格式化数字,小数点后保留两位有效数字DecimalFormat df = new DecimalFormat("#.00");if(size>=0 && size<=1024){return size + "B";}else if(size>1024 && size<= 1024*1024){return df.format(size*1.0/1024) + "KB";}else if(size>1024*1024 && size<= 1024*1024*1024){return df.format(size*1.0/(1024*1024)) + "MB";}else if(size>1024*1024*1024 && size<= 1024*1024*1024*1024){return df.format(size*1.0/(1024*1024*1024)) + "GB";}else if(size>1024*1024*1024*1024 && size<= 1024*1024*1024*1024*1024){return df.format(size*1.0/(1024*1024*1024*1024)) + "TB";}return null;}}

3      测试读取文件/目录的大小

import java.io.IOException;import java.nio.file.FileVisitResult;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;import java.nio.file.SimpleFileVisitor;import java.nio.file.attribute.BasicFileAttributes;import lombok.SneakyThrows;import org.exo.util.FileSizeUtil;import org.junit.Test;public class TestFileAttribute {/** * 测试读取文件大小 */@Test@SneakyThrows //抛出异常。lombok的注解public void testFileAttributes(){//在项目根目录下面查找文件Path path = Paths.get("big-template.xlsx");BasicFileAttributes attributes = Files.readAttributes(path, BasicFileAttributes.class);  System.out.println(FileSizeUtil.getSize(attributes.size()));}/** * 测试读取目录的大小 */@Test@SneakyThrows//抛出异常。lombok的注解public void testFileDirectoryAttributes(){//在项目根目录下面查找文件MyFileVistor<Path> vistor = new MyFileVistor<Path>();Files.walkFileTree(Paths.get("src"), vistor);System.out.println(FileSizeUtil.getSize(vistor.getSize()));}@SuppressWarnings("hiding")class MyFileVistor<Path> extends SimpleFileVisitor<Path>{long size = 0L;@Overridepublic FileVisitResult visitFile(Path path,BasicFileAttributes attrs) throws IOException {size += attrs.size();return FileVisitResult.CONTINUE;}public long getSize(){return this.size;}}}



0 0
原创粉丝点击