码迷,mamicode.com
首页 > 其他好文 > 详细

File类

时间:2017-10-16 17:54:16      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:span   erb   space   删除   tde   false   dir   filter   dem   

流只能操作具体的数据,但是对文件的大小、创建时间等信息却无法操作。这就有必须使用File类。

File f1=new file("c:\\a.txt");

名称分隔符也可以使用File.separator,如上例 "c:"+File.separator+"a.txt"

1.常见的File类的获取信息方法

public static void getDemo()
{
     File file=new File("a.txt");
     String name=file.getName();
     String absPath=file.getAbsolutePath();
     String path=file.getPath();
     long len=file.lenght();
     long time=file.lastModified();
Date date=new Date(time);
DateFormat dateFormat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.Long);
string str_time=dateFormat.format(date);

string parentDir=file.getParent();//如是相对路径,则当前目录的父目录是null
//以下输出,略 …… }

2.创建与删除

        File file=new File("a.txt");

        boolean b=file.createNewFile();

       和输出流不一样的是,如果文件不存在,则创建,如果文件存在,则不创建。

       file.delete();

      注意:file.deleteOnExit()是在退出时删除。

File类还可操作文件夹。

File dir=new File("abc");

boolean b=dir.mkdir();

当文件或目录不存时,isFile()和isDirectory()均为false,所以最好先判断是否存在。

3.重命名(有剪切功能,可改变目录)

File f1=new File("c:\\a.txt");

File f2=new File("c:\\b.txt");

boolean b=f1.renameTo(f2);

4. 获取系统根目录

File [] files=File.listRoots();

for(File file:files)

{

   System.out.println(file); //输出c:\  d:\   e:\等

}

5.获取空间容量

File file=new File("d:\\");

System.out.println(file.getFreeSpace());  //未用空间容量

System.out.println(file.getTotalSpace());  //总容量

System.out.println(file.getUsableSpace()); //已用空间容量

6.获取文件和目录列表

public static void  listDemo_1()
{
    File file =new File("c:\\"); //如果是文件或此目录不存在,则会有异常,所以最好加判断
    String[] names=file.list();
    for(String name:names)
    { 
         System.out.println(name);
    }
}

public static void  listDemo_2()
{
    File file =new File("c:\\"); //如果是文件或此目录不存在,则会有异常,所以最好加判断
    //list()方法可以带过滤器,过滤器的接口为FilenameFilter,它就一个方法accept() ,只要返回真,就取出
    String [] names=dir.list(new FilterByJava());
    for(String name:names)
    { 
         System.out.println(name);
    }
}


/*
   新建一个接口,做个过滤器
*/
public class FilterByJava implements FilenameFilter
{
     @Override
      public boolean accept(File dir,String name)
      {
          return name.endsWith(".java"); //取出所有扩展名为.java的文件名
      }
}

如果想过滤所有隐藏文件,那么不能用list()方法,因为这个方法只能获取和过滤文件和目录的名称,不能过滤文件的属性。

只能使用listFiles()方法。它也可以使用过滤器,参考上例。

File类

标签:span   erb   space   删除   tde   false   dir   filter   dem   

原文地址:http://www.cnblogs.com/jsddj/p/7677822.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!