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");}}