java获取文件大小
io方式
package filesize;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.math.BigDecimal;
import java.nio.channels.FileChannel;
public class size2 {
public static void main(String[] args) {
FileChannel fc = null;
try {
File f = new File("D:\\chengxu\\Chrome浏览器插件\\o_1apk0a5or1q77e3ie2g1k261nkba.zip");
if (f.exists() && f.isFile()) {
FileInputStream fis = new FileInputStream(f);
fc = fis.getChannel();
// logger.info(fc.size());
System.out.println(fc.size() + " 字节");
System.out.println(getPrintSize(fc.size()));
} else {
// logger.info("file doesn't exist or is not a file");
System.out.println("file doesn't exist or is not a file");
}
} catch (FileNotFoundException e) {
// logger.error(e);
System.err.println(e);
} catch (IOException e) {
// logger.error(e);
System.err.println(e);
} finally {
if (null != fc) {
try {
fc.close();
} catch (IOException e) {
// logger.error(e);
System.err.println(e);
}
}
}
}
public static String getPrintSize(long size) {
// 如果字节数少于1024,则直接以B为单位,否则先除于1024,后3位因太少无意义
double value = (double) size;
if (value < 1024) {
return String.valueOf(value) + "B";
} else {
value = new BigDecimal(value / 1024).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
}
// 如果原字节数除于1024之后,少于1024,则可以直接以KB作为单位
// 因为还没有到达要使用另一个单位的时候
// 接下去以此类推
if (value < 1024) {
return String.valueOf(value) + "KB";
} else {
value = new BigDecimal(value / 1024).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
}
if (value < 1024) {
return String.valueOf(value) + "MB";
} else {
// 否则如果要以GB为单位的,先除于1024再作同样的处理
value = new BigDecimal(value / 1024).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();
return String.valueOf(value) + "GB";
}
}
}
用文件的方式获取大小
public static void main(String[] args) {
File f = new File("/D:/workspace-wd/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/wtpwebapps/wdplus-web/WEB-INF/classes/../../upload/1BPTD91150006701A8C0000046294E99.jpg");
if (f.exists() && f.isFile()) {
// logger.info(f.length());
System.out.println(f.length() + " 字节");
System.out.println(getPrintSize(f.length()));
} else {
// logger.info("file doesn't exist or is not a file");
System.out.println("file doesn't exist or is not a file");
}
}