JAVASE——IO流框架

目录

File

方法递归

文件搜索

IO流

字节流

FileInputStream(文件字节输入流)

 FileOutputStream文件字节输出流

资源释放方案

字符流

文件字符输入流

文件字符输出流

缓冲流

BufferedInputStream缓冲字节输入流

性能分析

其他流

字符输入转换流

打印流

数据输出流


File

File类只能对文件本身进行操作,不能读写文件里面存储的数据。

public File(String pathname) 根据文件路径创建文件对象
public File(String parent, String child) 根据父路径和子路径名字创建文件对象
public File(File parent, String child) 根据父路径对应文件对象和子路径名字很创建文件对象
public boolean createNewFile() 创建一个新的空的文件
public boolean mkdir() 只能创建一级文件夹
public boolean mkdirs() 可以创建多级文件夹
public boolean delete() 删除文件、空文件夹

方法递归

方法调用自身的形式称为方法递归

文件搜索

找D:盘里搜索"QQ.exe"这个文件,找到后直接输出其位置。

1、先找出D:盘下的所有一级文件对象

2、遍历全部一级文件对象,判断是否是文件

3、如果是文件,判断是否是自己想要的

4、如果是文件夹,需要继续进入到该文件夹,重复上述过程

public static void main(String[] args) {
    File dir = new File("D:/");
    searchFile(dir, "QQ.exe");
}

public static void searchFile(File, String) {
    //1、判断极端情况
    if(dir == null || !dir.exists() ||dir.isFile()){
        return;//不搜索
    }
    
    //2、获取目录下的所有一级文件或者文件夹对象
    File[] files = dir.listFiles();
    
    //3、判断当前目录下是否存在一级文件对象,存在才能遍历
    if(files != null && files.length > 0){
        for (File file : files) {
            //5、判断当前一级文件对象是否是文件
            if(file.isFile()){
                //6、判断文件名称是否和目标文件名称一致
                if(file.getName().contains(fileName)){
                    System.out.println("找到目标文件" + file.getAbsolutePath());
                }
            }else{
                //7、如果当前一级文件对象是文件夹,则继续递归调用
                searchFile(file, fileName);
            }
        }
    }
}

IO流

I指Input,称为输入流:负责把数据读到内存中去

O指Output,称为输出流:负责写数据出去

  • 按照流的方向:输入流、输出流
  • 按照流的内容:字节流、子符流
  • 字节流:适合操作所有类型的文件
  • 字符流:只适合操作纯文本文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值