一.FILE类
1.概述
2.FILE类的静态成员变量(可以通过类名直接访问)
3.绝对路径和相对路径
4.FILE类的构造方法
第一个构造方法FILE(string name)
第二种构造方法(string parent,string child)
第三种构造方法(file parent,string child)
5.FILE中的获取方法
getAbsolute()方法:
getPath()方法(tostring方法调用的就是getpath方法) :
getName()方法:
lenth方法:
6.FILE中的判断方法
exists()方法
7 创建以及删除文件的方法
creatNewFile()方法:
mkdir和mkdirs方法:
delete方法:
7.遍历文件功能
二.文件的递归操作
1. 什么是递归
注意:
例题:使用递归计算1-n的和
原理解析:(注意:if里的return是返回方法调用处)
2. 递归打印多级目录
3.文件搜索
接上个例子的代码
优化处理:
三.FileFilter过滤器的原理和使用
1.过滤筛选出目标文件
筛选出java类型的文件
实现类
可以使用匿名内部类以及lambda表达式进行优化,老师这里讲的有点乱,等看完后找时间操练一下
四.I/O流
1.基本概念
计算机中存储内容均为字节形式
2.字节输出流概念以及相关方法
写入的时候会有创建文件的功能
3.字节输出流写入数据到文件
从内存写入硬盘
实例:在指定目录下创建a.txt文件并写入97
注意:必须在创建对象的时候抛出IO异常
4.文件的存储原理
5.字节流输出多个字节的方法
6.数据流的续写和换行
例子:
7.字节输入流【Inputstream】从文件中读取数据
基本定义和使用
例子:创建语句省略
fis.read()会自动读取下一个字节
8.字节输入流一次读取多个数据操作*
**
示例:文件内为ABCDE
解析:
优化:
9.文件复制
原理:
方法一:一个字节一个字节地读写(耗时)
优化方案:
五.字符输入输出流
输入输出是相对于内存而言,把内存里的数据输出(写)到文件中-output,把文件中的数据输入(读)到内存–intput
解决读取中文的问题
1.FileReader类—文件输入字符流(字符输入流)
父类是reader 类
实例:
一次读取单个字符
一次读取多个字符
2.FileWriter-字符输出流
父类是reader
定义:
示例:注意,此处出现了flush
3.flush方法和close方法的区别
flush刷新后流可以继续使用,close了之后流就不能再使用了
4.字符输出流写数据的其他方法
5.字符流的续写和换行(与字节相同)
5.trycatch处理流的异常情况
改进1:
改进2:
六.Path类(学校老师补充…)
方法详解
p.getclass().getname();//输出现在的操作系统
打印p的话会直接打印传入的整个路径
p.getRoot–>根目录
七.Files工具类(在nio包下,学校老师讲的)
删除文件
*
*遍历删除指定文件(不能直接删目录)
遍历删除目录(先删完文件,最后才能删目录 )
读取文件指定内容
八.基于Files的I/O流操作
1.从一个文件中读写字节到另一个文件
把流写入try语句内部可以自动关闭语句,不用再close了
but只有支持自动关闭的接口实现类才能放try里
read自动往后读
、
2.按字符读写(基于字节数组)
java9新特性transforto()
2.基于字符的读写
a.用inputstream
前提:从文件中读取的字节可以基于新方法直接转换为字符,但是不是所有的都可以转换为字符。并且要声明字符集类型(默认utf-8)
b。使用files方法