1.IO流:指数据相对于内存的走向来定义的输入和输出
特点:先进先出
分类:字节流/字符流 输入流/输出流
字节流和字符流的区别:
1.底层实现不同
2.参数不同,字节流使用byte,字符流使用char
3.字节流可以处理任何文件,字符流只能处理文本文档
File:对计算机磁盘空间操作的类,可以对指定盘符文件或文件夹进行操作
注意:创建对象时,路径可以是绝对路径,也可以是相对路径,相对路径开始位置为项目路径
注意:相对路径中,…表示返回上级目录
canRead( ):判断指定盘符是否有读取权限
canWrite( ):判断指定盘符是否具有写入权限
creatNewFile( ):在指定文件目录及名称的前提下(创建File对象时通过构造函数指定)创建
文件
注意:要创建文件只能在已经存在的目录下创建(只管文件不管目录)
mkdir( ):在指定目录路径及名称的前提下(创建File对象时通过构造函数指定)创建目录创建
一个目录
注意:要创建目录只能在已经存在的目录下创建
mkdirs( ):在指定目录下创建多层目录
delete( ):表示删除创建当前File对象时,构造函数中指定的pathName中最后的内容
例如:new File("D:/laopan/kittytxt) 在删除时讲删除kitty.txt
返回值:正确删除时,返回true,否则返回false
注意:删除目录时,只能删除空目录
list():表示返回目录下的文件或目录名,包含隐藏文件
注意:如果指定位当前项目所在空间,且没有说明是目录时,讲展示当前项目中的内容
exists:表示判断当前对象被创建时所指定的文件或目录是否存在
getAbsolutePath( ):表示获取当前或目录在磁盘中的真实路径
getName( ):表示获取文件或目录的名称
isDirectory():表示判断当前对象是指定的路径是否为目录,是则返回true,否则返回false
isFile( ):表示判断当前对象是指定的路径是否为文件,是则返回true,否则返回false
isHidden( ):表示判断当前对象是指定的路径是否为隐藏,是则返回true,否则返回false
renameTo( new File(新的名称)):表示修改原来的名称为新的名称
字节流:
InputStream:输入流,为抽象类,其子类负责实现read方法
available( ):表示获取当前文档中可读取的字符数量
read( ):表示读取下一个字符
注意:对于流来说,读取一个字符,少一个字符(当前对象中每调用一次read方法,
则少一个字符)
read(byte[ ] byts, int off , int len): 表示将指定获取到的字符存放到byte数组中
参数1:表示将要存放获取到的字符的数组(相当于流的缓冲区)
参数2:表示将字符放入数组中时从哪一个下标位置开始
参数3:表示将要获取的字符的数量
返回值:向数组中添加了多少元素
reset( ):表示重置读取位置(此位置为头部)
注意:使用时需要使用BufferInputStream对InputStream对象进行包装
input 读 output写
OutputStream:输出流,为抽象类,其子类负责实现write方法
注意:new FileOutputStream(new File(“D:/laopan/kitty.txt”))被执行时,kitty.txt文档将被创
建,如果此文档已经存在,则新文档覆盖原文档。
new FileOutputStream(new File(“D:/laopan/kitty.txt”), true);第二个参数表示新文档是否
为追加文档(true表示不覆盖原文档)
write(int b):表示将参数写入指定文档中,参数:int类型
write(byte[] b):表示将数组中的内容写入到指定文档中,参数:byte数组
write(byte[] b,int off,int len):表示将数组中的内容从指定位置(off)开始,共指定长度(len)的内
容写入到指定文档中
注意:byte类型数组在此处的作用为缓冲(缓冲区)。
字符流:
Reader:输入流,为抽象类,其子类负责实现read方法
read():读取一个字符,返回值为int类型(大年字符的编码)
read(char[] cbuf):表示读取当前数组长度的字符,放入数组中,返回值为放入数组中
元素的个数
read(char[] cbuf, int off, int len):表示读取指定长度(len)个元素,从指定位置(off)开
始,放入数组中(参数1)
注意:返回值为放入数组中元素个数
Writer:输出流,为抽象类,其子类负责实现write方法
注意:new FileWriter(new File(“D:/laopan/kitty.txt”))被执行时,kitty.txt文档将
被创建,如果此文档已经存在,则新文档覆盖原文档。
new FileWriter(new File(“D:/laopan/kitty.txt”), true);第二个参数表示新文档是否为追
加文档(true表示不覆盖原文档)
append(char c):表示将指定字符写入文档中
append(CharSequence csq):表示将指定内容写入文档中
append(CharSequence csq, int start, int end):表示将制定内容的从开始位置到结
束位置的字符写入文档中
注意:参数CharSequence为接口,其实现类有:String、StringBuffer、
StringBuilder等
注意:append方法的返回值为当前对象本身,即:可以继续调用对象方法
注意:长度不能超过要写入文档中的字符串的长度,否则将出现越界异常
write(int c):表示将参数写入指定文档中,参数:int类型
write(char[] cbuf):表示将数组中的内容写入到指定文档中,参数:char数组
write(char[] cbuf,int off,int len):表示将数组中的内容从指定位置(off)开始,共指定
长度(len)的内容写入到指定文档中
注意:char类型数组在此处的作用为缓冲(缓冲区)。
write(String str):表示将制定字符串写入文档中
write(String str, int off, int len):表示将制定字符串(str)从指定位置开始(off),共指定长
度(len)的字符写入文档中
注意:此处每一个汉字都将作为一个字符存在