抛出是告诉调用者出错了
捕获是让出错时不要停止继续运行
自定义异常:
1.定义异常类
2.写继承关系
3.空参构造
4.带参构造
意义:就是为了让控制台的报错信息更加见名知意
File:
length:
细节:这个方法只能获取文件的大小,单位是字节
如果单位我们要是M,G,可以不断的除1024
细节2:这个方法无法获取文件夹的大小,如果我们要获取一个文件夹的大小,需要把这个文件夹里面所有的文件大小都累加在一起
delete:
delete方法默认只能删除文件和空文件夹,delete方法直接删除不走回收站(删除就没了)
如果删除空文件夹则删除成功,文件夹有内容删除失败
细节1:creatNewFile如果当前路径表示的文件是不存在的,则创建成功,方法返回true
如果当前路径表示的文件是存在的,则创建失败,方法返回false
细节2:如果父级路径是不存在的,那么方法会有异常IOException
细节3:creatNewFile方法创建的一定是文件,如果路径中不包含后缀名,则创建一个没有后缀的文件
mkdir:
细节1:Windows当中路径是唯一的,如果当前路径已经存在,则创建失败
细节2:mkdir方法只能创建单级文件夹,无法创建多级文件夹
mkdirs:
细节:既可以创建多级的,也可以创建单级的
用于遍历或者拷贝都很好用
IO流:
纯文本文件·:Windows自带的记事本打开能读懂
字节流:
FileoutputStream:
书写步骤:
1.创建字节输出流对象
细节1:参数是字符串表示的路径或者是File对象都是可以的
细节2:如果文件不存在会创建一个新的文件,但是要保证父级路径是存在的
细节3:如果文件已经存在会清空文件
2.写数据
细节:write方法的参数是整数,但是实际上写到本地文件中的是整数在ASCLL上对应的字符
3.释放资源
每次使用完流之后都要释放资源
FileoutputStrram写数据的3种方式:
对于第三种方法:
参数1:数组,参数2:起始索引,参数3:个数
FileoutputStream写数据的两个小问题:
换行写:
再次写一个换行符就可以了
续写:
如果想要续写,打开续写开关即可
开关位置:创建对象的第二个参数,默认是false:表示关闭续写,此时创建对象会清空文件,手动传递true:表示打开续写,此时创建对象不会清空文件
举个栗子:FileOutputStream fos=new FileOutputStream(str,true);
FiileinputStream:
操作本地文件的字节输入流,可以把本地文件中的数据读取到程序中来
书写步骤:
1.创建字节输入流对象
细节1:如果文件不存在,直接报错
2.读数据
细节1:一次读一个字节,读出来的是数据在ASCII上对应的数字
细节2:读到文件末尾了,read方法返回-1
3.释放资源
每一次使用完之后要释放资源
FiileinputStream一次读取多个数据:
将释放资源等扫尾操作放在finally中
字符集:
GBK:
规则1:汉字两个字节储存
规则2:高位字节二进制一定以1开头,转成十进制之后是一个负数
Unicode:
UTF-8编码规则:用1到4个字节保存:ASCII,1个字节,简体中文,3个字节
UTF-16编码规则:用2到4个字节保存
UTF-32编码规则:固定使用四个字节保存
字符流:
特点:一次读一个字节,遇到中文时,一次读多个字节
FileReader(空参):
FileReader(有参):
与字节流不同,传入的是char类型的数组
FileWriter:
字节流和字符流的使用场景:
字节流:拷贝任意类型的文件
字符流:读取纯文本文件中的数据,往纯文本文件中写出数据
缓冲流:
字符缓冲流: