JAVAday22(File,字节输出流,递归)

我们想要实现IO操作,就必须要知道硬盘上文件的表现形式
Java提供了一个类让我们操作硬盘上的文件:File
File也就是文件表现形式

File:文件和目录(文件夹)路径名的抽象表示。

构造方法:
  public File(String pathname)
     通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
     如果给定的字符串是空字符串,则结果是空的抽象路径名。
  public File(String parent,String child)
     从父路径名字符串和子路径名字符串创建新的File实例。
  public File(File parent,String child)
     从父抽象路径名和子路径名字符串创建新的File实例。
创建功能
    public boolean createNewFile()
    public boolean mkdir()
    public boolean mkdirs()
删除功能:
    public boolean delete()
重命名功能
    public boolean renameTo(File dest)
判断功能
   public boolean isDirectory()
   public boolean isFile()
   public boolean exists()
   public boolean canRead()
   public boolean canWrite()
   public boolean isHidden()
基本获取功能
    public String getAbsolutePath()
    public String getPath()
    public String getName()
    public long length()
    public long lastModified()
高级获取功能
    public String[] list()
    public File[] listFiles()
eg:判断F盘下面有没有.txt后的文件,如果有,就输出此文件名称
    分析:1、将F盘根目录封装成一个File对象
          2、获取该目录下所有的文件或者文件夹组成的File对象数组
          3、遍历File数组,得到每一个File对象,然后判断是否是文件
             是:继续判断是否以.jpg后缀
             是:输出名称
             不是:不管他
             不是:不管他
import java.io.File;

public class FileDemo8 {
    public static void main(String[] args) {
        File file = new File("F:\\");
        File[] files = file.listFiles();
        for (File f : files){
            if (f.isFile()){
                if(f.getName().endsWith(".txt")){
                    System.out.println(f.getName());
                }
            }
        }
    }
}
eg:判断F盘下面有没有.txt后的文件,如果有,就输出此文件名称
    分析:1、先获取所有的文件和文件夹,然后在遍历的时候,再去判断是否是文件,是否是.jpg后缀           的,最后再将满足条件的文件过滤出来获取到名称。
          2、在获取的时候,获取到的数据就是满足条件的,我们直接输出就可以了。

文件名称过滤器的实现思想及代码
    public String[] list(FilenameFilter filter)
    public File[] listFiles(FilenameFilter filter)
import java.io.File;
import java.io.FilenameFilter;

public class FileDemo9 {
    public static void main(String[] args) {
        File file = new File("F:\\");
        String[] list = file.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
//                return false;
//                return true;
                //通过测试发现,目录下的文件挥着文件夹该不该获取到,取决于这里的返回值
                //true,就获取到加到数组中,false,就不获取,不加到数组中
//                System.out.println(dir);
//                System.out.println(name);
                File file1 = new File(dir, name);
                boolean b = file1.isFile();
                boolean b1 = name.endsWith(".txt");
                return  b && b1;
            }
        });

        for (String s : list){
            System.out.println(s);
        }
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值