File

当须要把内存中的数据存储到持久化设备上这个动做称为输出(写)Output操做。java

当把持久设备上的数据读取到内存中的这个动做称为输入(读)Input操做。数组

所以咱们把这种输入和输出动做称为IO操做。测试

 

 

//相对路径:相对本工程的路径spa

       File file=new File("src");对象

      

       //获取绝对路径递归

       file.getAbsolutePath();接口

      

       //获取文件夹名内存

       file.getName();字符串

       //获取该文件的字符串路径get

       file.getPath();

       //获取这文件夹的长度

       file.length();

 

新建文件:

       //1.不能建立同名文件

       //2.不能建立文件夹

       File file=new File("D:\\text\\c.JaVa");

       file.createNewFile();//返回一个布尔值,判断是否建立成功

      

 

建立文件夹:

       file.mkdir();

建立多级文件夹

       file.mkdirs();

   

 

//判断该File指定的文件或文件夹是否存在

file.exists();

 

    //判断该File指定的文件或文件夹是不是文件夹(目录)

    file.isDirectory();

 

    //判断该File指定的文件或文件夹是不是是文件

    file.isFile();

   

   

    //删除文件或文件夹

    file.delete();

 

File.pathSeparator  路径分隔符 

Windows系统 ;  Linux系统 :

 

 

listFiles()方法

list() 返回一个字符数串组,为指定路径中的文件名

listFiles() 返回一个全部路径名的File[]

 

注意:在获取指定目录下的文件或者文件夹时必须知足下面两个条件

1,指定的目录必须是存在的,

2,指定的必须是目录。不然容易引起返回数组为null,出现NullPointerException

 

 

文件过滤器

listFiles(FileFilter  filter)重载方法:返回路径名File[],而且符合括号中指定过滤的文件和目录

FileFilter 接口

方法:accept(File pathname);测试指定路径名是否包含在指定文件中,accept方法接受一个参数,这个参数就当前文件或文件夹对象

返回值  boolean

 

须要自定义类接受FileFilter接口

列: File file=new File("D:\\text");

       File[] files=file.listFiles(new MyFileFilter());

       for(File f:files){

           System.out.println(f);

       }

public class MyFileFilter implements FileFilter{

        public boolean accept(File pathname){

          

           return pathname.getName().toLowerCase().endsWith(".java");

        }

}

getName()获取文件名,toLowerCase(),大写转为小写,endsWith(".java");判断以什么结尾(“.java”);

 

 

 

 

递归

递归,指在当前方法内调用本身的这种现象

 

注意:递归必定要有条件限定,保证递归可以中止下来,不然会发生栈内存溢出。

在递归中虽然有限定条件,可是递归次数不能太多。不然也会发生栈内存溢出。

递归打印指定文件下的全部子目录:

 

File file=new File(“D:\\text”);

public static void geta(File file){

File[] files=file.listFiles(new My());

for(File f:files){

           if(f.isDirectory()){//判断若是是文件夹就继续调用

              geta(f);

           }

           if(f.isFile()){//判断是文件 打印

              System.out.println(f);

           }

             

}

}

public class My implements FileFilter{

    public boolean My(File pathname){

       if(pathname.isDirectory()){

           return true;

       }

       return pathname.getName().toLowerCase().endsWith(".txt");

    }

}

相关文章
相关标签/搜索