一、File类型
(一)概述
1.File类型:用于表示一个文件或者文件夹的抽象路径
2.路径:用于描述文件或者文件夹所在所在位置的字符串
3.路径分类
(1)绝对路径:从根目录开始的路径
(2)相对路径:相对于某个路径而言的路径
(二)构造方法
1.File(String pathname):将一个字符串表示的路径封装为File对象
2.File(File parent,String child):将父级路径和子级路径封装成一个File对象,对象中的路径是
父级路径+子级路径
3.File(String parent,String child):将父级路径和子级路径封装成一个File对象,对象中的路径
是父级路径+子级路径
(三)File类型的创建方法
1.createNewFile():当且仅当File对象表示的文件路径的路径不存在时,创建一个新的空文件,
如果创建成功就返回true
2.mkdir():只能创建单个目录,如果父级不存在,创建失败
3.mkdirs():可以创建嵌套目录,如果一次创建多层目录,父级目录不存在时,直接创建
(四)删除方法
1.delete():删除路径指定的文件或者文件夹
2.注意
(1)使用该方法删除的文件夹只能是空文件夹,无法删除非空文件夹
(2)使用该方法删除的内容不走回收站
(五)重命名方法
1.renameTo(File dest):将调用者对象表示的文件使用参数对象表示的新名称重新命名
2.注意
(1)在同路径下,该方法仅仅是重命名
(2)在不同路径下,该方法是剪切并且重命名
(六)判断功能
1.exists():测试调用者表示的抽象路径是否存在
2.isFile():判断调用者抽象路径表示的文件是不是一个标准文件
3.isDirectory():测试调用者对象表示的路径是不是一个文件夹
(七)获取功能
1.getAbsoluteFile():返回当前File的绝对路径的File格式
2.getAbsolutePath():返回当前File的绝对路径的字符串格式
3.getName():获取当前File对象路径表示的文件名或者文件夹的名称
4.length():获取File对象指代的文件的长度(所占用字节数),如果对象路径指代文件夹,返
回值不确定
5.list():将File对象表示的文件夹下的所有内容的名字装进String数组中,只是名字,不是完成
路径
6.getPath():将File对象表示的路径转为字符串表示形式
(八)File与递归
1.listFiles():将File对象表示的文件夹下的所有内容的路径装进File数组中
二、IO概述
(一)简介
1.IO:是input和output两个单词的缩写,输入和输出
2.内存:用于程序运行的区域,数据断电丢失
3.磁盘:用于静态存储数据的地方,数据断电不丢失
4.所有的输入输出,如果没有特殊的设定,都是站在计算机内存的角度去看待,一切进内存的操作
都叫做输入,一切出内存的操作都叫做输出
5.java中操作设备之间数据传输的对象,都是IO对象,这些对象所属的类型都在IO包中
(二)IO分类
1.按照功能分
(1)字节流:可以直接操作字节的流对象
(2)字符流:可以直接操作字符的流对象
2.按照流向分
(1)输入流:其他设备到内存
(2)输出流:内存到其他设备
3.IO流主要的体系结构
(1)字节流
①字节输入流
②字节输出流
(2)字符流
①字符输入流
②字符输出流
(三)IO程序的书写
1.IO流对象使用完毕之后一定要记得关闭资源
2.所有IO相关的内容都在IO包底下
3.IO在操作过程中,记得处理异常
三、字节流
(一)概述
1.可以直接操作字节的流对象
2.字节输入流的顶层抽象父类:InputStream
3.字节输出流的顶层抽象父类:OutputStream
4.根据交互设备的不同,具有不同的实现类
(二)InputStream
1.字节输入流的顶层抽象父类
2.常用方法
(1)close():关闭资源
(2)read():从当前字节流中读取一个字节信息并且返回,到达文件末尾就返回-1
注意:①该方法返回的是字节信息本身
②只要是从文件中读取到的内容,一定是【0,255】范围的数据,只要返回-1,肯定不是读取到的
数据,而是到达文件末尾
(3)read(byte【】arr):从输入流中读取一定数量的字节,并将其存储在缓冲器数据arr中
注意:①该方法返回的是字节信息的个数,而非字节信息本身
②只要到达文件末尾就返回-1
(4)available():返回流中剩余的字节个数
(三)FileInputStream
1.是InputStream的子实现类,用于和磁盘上的文件进行交互
2.不仅可以一次读取一个字节信息,还能够一次读取多个字节信息,不仅能够操作纯文本,也可以操作图片、视频、音频等等
3.构造方法
(1)FileInputStream(File file):将一个文件的路径封装为一个File对象,之后封装在
FileInputStream中,创建一个可以用来读取这个文件的流对象
(2)FileInputStream(String name):将一个字符串表示形式的文件路径封装在FileInputStream
中,创建一个可以用来读取这个文件的流对象
(四)OutputStream
1.字节输出流的顶层抽象父类
2.常用方法:
(1)write(int b):将一个字节信息输出到指定设备中
(2)write(byte【】b):将一个字节数组中的所有字节信息,输出到指定设备中
(3)write(byte【】b,int off,int len):将一个字节数组中的一部分字节信息,输出到指定设
备中
(五)FileOutputStream
1.是OutputStream的子实现类,用于和磁盘上的文件进行交互
2.构造方法
(1)FileOutputStream(File file):将file对象描述的文件的路径封装在FileOutputStream中
(2)FileOutputStream(String name):将字符串描述的文件的路径封装在FileOutputStream中
3、注意
(1)如果目标文件不存在,直接创建文件,将字节信息写出到文件中
(2)如果目标文件存在,直接覆盖其内容
(3)使用流对象将字节信息写出到磁盘的过程,既不存在编码,也不存在解码,只是字节信息的
单纯搬运,但是当我们打开存在字节信息的文件时,使用的是记事本打开的,所以会按照文本的方
式进行解析字节信息。事实上,在我们使用记事本打开一个文件的时候,存在两个步骤:①先将磁
盘上的字节信息读取到内存中;②再通过编码表进行解码