import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.channels.FileChannel;
/**
* Java 获取 文件大小
*/
public class Test1 {
public static void main(String[] args) {
File file = new File("/Users/tmk/IdeaProjects/untitled/files/app-release.apk");
boolean exists = file.exists();
boolean isFile = file.isFile();
System.out.println("exists===========" + exists);
System.out.println("isFile===========" + isFile);
if (!exists || !isFile) {
return;
}
System.out.println("Long.MAX_VALUE = " + Long.MAX_VALUE);
System.out.println("Long.MIN_VALUE = " + Long.MIN_VALUE);
System.out.println("Integer.MAX_VALUE = " + Integer.MAX_VALUE);
System.out.println("Integer.MIN_VALUE = " + Integer.MIN_VALUE);
System.out.println("===============华丽分割线==================");
getFileSize1(file);
System.out.println("===============华丽分割线==================");
getFileSize2(file);
System.out.println("===============华丽分割线==================");
getFileSize3(file);
}
/**
* 获取文件长度
*/
public static void getFileSize1(File file) {
long fileLength = file.length();
String fileName = file.getName();
printLength(fileName, fileLength);
}
/**
* 根据java.io.*的流获取文件大小
*/
public static void getFileSize2(File file) {
FileInputStream fis = null;
try {
String fileName = file.getName();
fis = new FileInputStream(file);
int fileLength = fis.available();//注意这返回int类型
printLength(fileName, fileLength);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != fis) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
/**
* 根据java.nio.*的流获取文件大小
*/
public static void getFileSize3(File file) {
FileChannel fc = null;
try {
String fileName = file.getName();
FileInputStream fis = new FileInputStream(file);
fc = fis.getChannel();
long fileLength = fc.size();
printLength(fileName, fileLength);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (null != fc) {
try {
fc.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public static void printLength(String fileName, long fileLength) {
System.out.println("文件" + fileName + "的大小是:" + fileLength + "byte");
System.out.println("文件" + fileName + "的大小是:" + fileLength / 1024 + "Kb");
System.out.println("文件" + fileName + "的大小是:" + fileLength / 1024 / 1024 + "Mb");
System.out.println("文件" + fileName + "的大小是:" + fileLength / 1024 / 1024 / 1024 + "Gb");
}
}
Java 获取 文件大小
最新推荐文章于 2024-06-03 11:31:55 发布