java file 类

来源:互联网 发布:squid 修改端口 编辑:程序博客网 时间:2024/06/02 02:23
File  
       文件类
      基于封装思想,一个File类型的对象保存了一个本地操作系统上文件或者文件夹的信息。
    文件:  实际保存数据
    文件夹: 目录  
      以字符串形式表示本地文件的路径,再把这个路径传递给File类型的对象,在该对象创建的时候会去解析这个路径,并且去访问这个文件,然后把文件的属性信息提取出来封装成对象。
      有可能出现路径表示的文件不存在,但是也不会出错,只是这个File对象中保存信息没有提取到都是默认值。
一些常用方法:
1.构造方法:
 下面的构造函数可以用来生成File 对象:
         File(String directoryPath)
         File(String directoryPath, String filename)
         File(File dirObj, String filename)
只是尝试读取,文件或者文件夹,并没有创建文件夹。
2.创建文件或者文件夹
1.boolean createNewFile()不存在返回true 存在返回false
2.boolean mkdir() 创建目录
3.boolean mkdirs() 创建多级目录
mkdir()和mkdirs()的区别,前者不会创建父目录,若没有父目录的话会创建失败,所以推荐使用后者来创建

删除方法

1.boolean delete()
2.boolean deleteOnExit() 文件使用完成后删除

判断方法

1.boolean canExecute()判断文件是否可执行
2.boolean canRead()判断文件是否可读
3.boolean canWrite() 判断文件是否可写
4.boolean exists() 判断文件是否存在
5.boolean isDirectory() 判断是否为文件夹
6.boolean isFile()
7.boolean isHidden()
8.boolean isAbsolute()判断是否是绝对路径 文件不存在也能判断

获取方法

1.String getName()
2.String getPath()
3.String getAbsolutePath()
4.String getParent()//如果没有父目录返回null
5.long lastModified()//获取最后一次修改的时间
6.long length()  返回文件长度
7.boolean renameTo(File f)
8.File[] liseRoots()//获取机器盘符
9.String[] list() 返回文件和目录清单
10.String[] list(FilenameFilter filter)

File.speparator的作用是判断在不同的系统中斜杠的方向

* 在windows中斜杠的方向是向右斜的\\
 * 在Linux  中斜杠的方向是向左斜的//

 File f = new File("e:" + File.separator + "file" + File.separator + "io.txt");

  1. 1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败  
  2.     2、File类的mkdir方法根据抽象路径创建目录  
  3.     3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录  
  4.     4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。  
  5.     5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败 

实例1:
在sd卡上创建文件夹
Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)判断是否有SD卡

public static boolean initDownPath(String path){
if(Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED)){
   File file = new File(path);
   if(!file.exists()){//判断文件夹是否存在
      file.mkdirs();//不存在就创建
      return true;
    }
}
   return false;
}
实例:2 创建文件

 File file=new File("C:\\Users\\QPING\\Desktop\\JavaScript\\2.htm");  
    if(!file.exists())  
    {  
        try {  
            file.createNewFile();  
        } catch (IOException e) {  
            // TODO Auto-generated catch block  
            e.printStackTrace();  
        }  
    }  

利用递归列出全部文件

public class FileDemo5 {    public static void main(String[] args){        File f =new File("e:\\音樂");        showDir(f);    }    public static void showDir(File dir){        System.out.println(dir);        File[] files =dir.listFiles();        for(File file:files){            if(file.isDirectory())                showDir(file);            else                System.out.println(file);//这里是可以处理自己的逻辑        }    }}

移动文件

找出d盘下所有的 .java 文件,拷贝至 c:\jad 目录下,并将所有文件的类型由.java 修改为.jad 。

public class Test5 {    public static void main(String[] args){        File f1 = new File("d:\\");        moveFile(f1);    }public static void moveFile(File dir){    File[] files=dir.listFiles();    for(File file:files){        if(file.isDirectory())            moveFile(file);        else{            if(file.getName().endsWith(".java"))                file.renameTo(new File("c:\\jad\\"+            file.getName().substring(0,file.getName().lastIndexOf('.'))+".jad"));            }        }    }}

文件过滤

import java.io.File; import java.io.FilenameFilter; public class FileDemo4 {     public static void main(String[] args){         File[] files =File.listRoots();         for(File file:files){             System.out.println(file);             if(file.length()>0){                 String[] filenames =file.list(new FilenameFilter(){                     //file 过滤目录 name 文件名                     public boolean accept(File file,String filename){                         return filename.endsWith(".mp3");                     }                 });                 for(String filename:filenames){                     System.out.println(filename);                 }             }         }     } }

0 0
原创粉丝点击