File

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

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

因此我们把这种输入和输出动作称为IO操作。

 

 

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

       File file=new File("src");

      

       //获取绝对路径

       file.getAbsolutePath();

      

       //获取文件夹名

       file.getName();

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

       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");

    }

}

转载于:https://www.cnblogs.com/hhthtt/p/10632543.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值