JAVA-File、iO流

File类概述

  • File类在包java.io.File下、代表操作系统的文件对象(文件、文件夹)。
  • File类提供了诸如:定位文件,获取文件本身的信息、删除文件、创建文件(文件夹)等功能。

File类的常用API

File类创建对象:

File对象可以定位文件和文件夹
File封装的对象仅仅是一个路径名,这个路径可以是存在的,也可以是不存在的。

File类的判断文件类型、获取文件信息功能

 

  •  delete方法直接删除不走回收站;如果删除的是一个文件,且文件没有被占用则直接删除。
  • delete方法默认只能删除空文件夹。

listFiles方法注意事项:

  • 当调用者不存在时,返回nul
  • 当调用者是一个文件时,返回null
  • 当调用者是一个空文件夹时,返回一个长度为0的数组
  • 当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
  • 当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容 


方法递归

递归的形式和特点


递归的算法流程、核心要素

递归算法三要素大体可以总结为:

  • 递归的公式:f(n)=f(n-1)*n;
  • 递归的终结点:f(1)
  • 递归的方向必须走向终结点


非规律化递归案例-文件搜索

案例需求:文件搜索、从C:盘中,搜索出某个文件名称并输出绝对路径。
分析:

  • 先定位出的应该是一级文件对象
  • 遍历全部一级文件对象,判断是否是文件
  • 如果是文件,判断是否是自己想要的
  • 如果是文件夹,需要继续递归进去重复上述过程

 

 
非规律化递归案例-啤酒问题(略)


字符集

案例:

 


IO流概述

四大抽象类:

 

 

 


字节流的使用

1、Filelnputstream

每次读一部分:

 一次性读完(方式2,jdk9开始):

2、 FileOutPutSteam

 

 

 

 

 3、使用字节流复制文件(案例):

 字节流适合做一切文件数据的拷贝吗?

  • 任何文件的底层都是字节,拷贝是一字不漏的转移字节,只要前后文件格式、编码一致没有任何问题。


资源释放的方式

try-catch-finally

  • finally:在异常处理时提供finally块来执行所有清除操作,比如说IO流中的释放资源
  • 特点:被finally控制的语句最终一定会执行,除非VM退出
  • 异常处理标准格式:try..catch..finally

格式:

 finally虽然可以用于释放资源,但是释放资源的代码过于繁琐?

JDK7和JDK9中都简化了资源释放操作(推荐JDK7)

注意

  • DK7以及DK9的()中只能放置资源对象,否则报错

什么是资源呢?

  • 资源都是实现了Closeable/AutoCloseable接口的类对象

 


try-with-resource


字符流的使用

文件字符输入流:Reader
        作用:以内存为基准,把磁盘文件中的数据以字符的形式读取到内存中去。

 一次读(进内存)一个字符数组:

文件字符输入流:Writer

 

 写(进硬盘)字符流:

 

另:

字节流、字符流如何选择使用?

  • 字节流适合做一切文件数据的拷贝(音视频,文本)
  • 字节流不适合读取中文内容输出
  • 字符流适合做文本文件的操作(读,写)

  • File类可以定位文件:进行删除、获取文本本身信息等操作。但是不能读写文件内容。
  • IO流技术可以对硬盘中的文件进行读写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值