File类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了File类相关的知识,希望对你有一定的参考价值。

流只能操作具体的数据,但是对文件的大小、创建时间等信息却无法操作。这就有必须使用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类的主要内容,如果未能解决你的问题,请参考以下文章

这些 C++ 代码片段有啥作用?

php代码片段: sendFile/videoStream/sendEmail/phpexcel/ffmpeg/zip

[异常解决] Make nRF51 DFU Project Appear "fatal error: uECC.h: No such file or directory"(代码片段

如何通过单击片段内的线性布局从片段类开始新活动?下面是我的代码,但这不起作用

解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘(代码片段

pycharm添加Odoo代码片段