目前有两种实现方法,一种是使用File的length()方法;另外一种是使用FileInputStream的available()方法,当InputStream未进行read操作时,available()的大小应该是等于文件大小的。下面假设获取D:\\test.zip文件的大小。
前期准备工作(包括相关工具或所使用的原料等)jdkeclipse 详细的操作方法或具体步骤
使用File的length()方法:
public static void main(String[] args) {
File f=new File("D:\\test.zip");
if (f.exists() && f.isFile()){
logger.info(f.length());
}else{
logger.info("file doesn't exist or is not a file"); }}

通过FileInputStream来获取的文件大小(当文件太大会出现问题):
public static void main(String[] args) {
FileInputStream fis=null;
try{ File f=new File("D:\\test.zip");
fis=new FileInputStream(f);
logger.info(fis.available());
}catch(Exception e){
logger.error(e);
} finally{ if (null!=fis){
try { fis.close();
} catch (IOException e) {
logger.error(e); } } }}

通过FileInputStream来获取的文件大小(解决了当文件太大出现问题)
public static void main(String[] args) {
FileChannel fc=null;
try { File f=new File("D:\\test.zip");
if (f.exists() && f.isFile()){
FileInputStream fis=new FileInputStream(f);
fc=fis.getChannel();
logger.info(fc.size());
}else{
logger.info("file doesn't exist or is not a file"); }
} catch (FileNotFoundException e) {
logger.error(e);
} catch (IOException e) {
logger.error(e);
} finally { if (null!=fc)){
try{ fc.close();
}catch(IOException e){
logger.error(e); } } }}

- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
