一.File 类的作用?(最大作用:上传下载文件)
将文件或者文件夹信息加载到内存中(读取文件内容,覆盖写入,追加写入)
使用场景:可以在学习框架的时候用来配置读取文件配置
二.11个方法?
exist() //判断文件或文件夹是否存在
isDirectory() //判断是否是文件夹
getPath() //获取相对路径
getAbsoulatePath() //获取绝对路径
isFile() //判断是否是文件
getName() //获取文件名称
delete() //删除文件或者文件夹
createNewFile() //创建新文件(文件所在的文件夹一定要存在)
length() //返回文件内容字节长度
mkdir() //创建文件夹(只能创建一层)
mkdirs() //创建多层文件夹(多重文件夹)(常用)
三.输入输出流
是以程序为参照物体
读取文件内容到程序 输入流
将文件内容写到文件中 输出流
四.处理单元
字节流:字节为单位
字符流:字符为单位(缓存流、对象流、二进制流)一个字符=三个字节
五.什么是流
流是一组有序的数据序列,以先进先出的方式发送信息通道。
六.流的分类
按照流向区分:输入流 OutputStream和Writer作为基类
输出流InputStream和Reader作为基类
按照处理数据单元划分:字节流InputStream和OutputStream
字符流Reader和Writer
字节流是8位通用字节流,字符流是16位Unicode字符流
七.常用方法
FileInputStream和FileOutputStream
八.使用步骤
1.导入相关类
2.创建输入输出流对象
3.读写文本数据
4.关闭流
九.字符流
字符输入流:Reader方法:read()
read(char[ ] c)
read(char[ ] c,int off,int len)
close( )
InputStreamReader 构造方法 :以字节输入流入参
以字节输入流和编码格式作为入参
FileReader 构造方法: 以File文件类入参
以文件路径入参
Reader的子类是InputStreamReader,而InputStreamReader 的子类是FileReader
****字符流除了使用FileReader之外,其他的字符流都需要以字节流对象作为入参。
字节流和字符流
read()方法返回值不一样
字节流返回的是读取到的字节
字符流返回的是读取的字符长度
十.缓存字符流
使用缓存字符流复制文件
需要存在几个流
字节输入流
缓存输入流
字节输出流
缓存输出流
作用:可以提高字符流读取文件的效率
BufferReader是Reader的子类,他带有缓冲区,按行执行readLine()方法
十一.在使用缓存字符流的同时解决字符乱码问题
缓存字符流必须以一个字符流对象作为入参
可以以FileReader 作为入参,他不能解决乱码问题
可以InputStreamReader作为入参,这样就必须还要存在一个字节流对象
InputStream is =null;
InputStreamReader isr=null;
BufferedReader br=null;
is=new FileInputStream("文件名");
isr=new InputStreamReader(is,"GBK(编码名)");
br= new BufferedReader(isr);
十二.字符输出流
Writer常用方法:write(String[ ] strs)
write(String [ ] strs ,int off, int len)
close()
flush()
子类:OutputStreamWriter
构造方法:
以字节输出流作为入参
以字节输出流和字符编码格式作为入参
FileWriter
构造方法
以文件路径作为入参
以文件对象作为入参
BufferedWriter
构造方法:
以FileWriter字符流对象作为入参
以OutputStreamWriter对象作为入参 可以解决中文乱码问题
十三.close()方法
先开的后关,后开的先关