提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
事实证明,IO流和多线程并不好学。
一、异常
1.异常分类
Erro
代表系统异常错误(严重问题),程序员管不了
Exception
叫做异常“程序可能出现的问题”
RuntimeException
运行异常(在编译中不会提醒,运行时出现的异常)
其他异常
编译异常:编译阶段就会提醒的异常(必须手动处理,否则代码报错)
2.异常流程
JAVA——>字节文件
编译阶段就要处理的异常
编译阶段:JAVA不会运行代码,只会检查语法是否有错,或做一些性能优化
字节码文件——>运行结果
运行时异常,编译阶段不需要处理。代码运行时出现的异常;一般由于参数传递错误带来的问题
3.异常的作用
作用一
查询bug的关键信息
作用二
异常可以作为方法内部的一种特殊返回值,以便通知调用者底层的执行情况
eg:throw new RuntimeException();
4.异常的处理方式
JVM默认处理方案
把异常名称、原因、位置等信息输出在控制台
程序停止,不执行下面代码
5.自己处理
捕获异常
格式:
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常的处理代码
}
好处:可以让代码继续往下执行,不会停止
注意项:
try中没有遇到问题,忽热执行
会把try类名的代码执行,不执行cacth类名的代码
try中遇到多个问题,怎么办
要写多个个catch与多个异常对应;
父类异常要写在最下面
ps:jd7以后,一个catch类名可以写多个异常,中间用“|”隔开
try中遇到的问题没被捕获,怎么办
相当于白写,交给JVM处理
try遇到了问题,try下面的其他代码还会执行吗
try中代码出货问题,会直接停止,跳到对应的catch中,若catch中无对应解决方法,默认交给虚拟机处理
6.抛出异常
throws
写在方法定义处,表示声明一个异常,告诉调用者,使用本方法可能会有哪些异常
注意点:编译时异常必须写,运行时异常可以不写
throw
写在方法内,结束方法手动跑出异常对象,交给调用者,方法中下面的代码不再执行了
异常中的常见方法
Trowable

错误输出语句:System.err.println();显示红色字体
二、方法引用
把已有方法拿过来用,当作函数式接口中超级偶像方法的方法体
1.要求:
1.引用处必须是函数式接口;
2.被引用的方法必须已经存在
3.被引用方法的形参和返回值需要和抽象方法保持一致
4.被引用的方法功能要满足当前需求
“::”引用方法的符号具体使用
eg:Arrays.sort(arr,FunctionDemo1::subtracktion);
2.方法引用的分类
引用静态方法
格式:类名::静态方法
eg:Integer::parseInt
引用成员方法
给是:对象::成员方法
1.其他类:其他类对象::方法名
2.本类:this::方法名(不能是静态方法)
3.父类:super::方法名
引用构造方法
格式:new::类名
eg:Student::new
三、IO流
是存储和读取数据的解决方案
file表示系统中文件或者文件夹的路径
IO流用于读写文件中的数据(可以读写文件,或网络中的数据)
创建原则:随用随创建,不用就关闭
流的方向
输入流
输出流
操作文件类型
字节流(所有类型文件)
字符流(纯文本文件)
1.IO流体系

1.字节流
InputStream&&OutputStream
1)FileOutStream(操作本地文件的字节输出流)

如果想续写,可以打开续写开关“true”
步骤:
**创建字节对象**
1.参数是字符串表示的路径或者是file对象都可以
2.如果路径不存在会创建一个新的文件,但是要保证父级路径是存在的
3.如果文件已经存在,则会清空文件
**写出数据**
write方法的参数是整数,写到本地文件中的参数其实最终对应ASCII码表
**释放资源**
每次使用完流后都要释放资源
创建字节流输出对象
try catch异常处理

finally里代码一定会被执行,除非虚拟机停止
2.字符流

字符流=字节流+字符集
特点:
**输入流:**一次读一个字节,遇到中文时,一次读多个字节
**输出流:**底层会把数据按照规定的编码方式进行编码,比纳城字节在写到文件中
使用场景:对纯文本文件进行读写操作
reader
FileReader:
创建字符输入流对象细节:
读取文件不存在直接报错
读取数据细节:
1.按字节进行读取,遇见中文,一次多读个字节,读取后解码,返回一个整数
2.读到文件末尾,返回一个-1
释放资源:
统一关流close。
wirter
FileWriter:

flush:刷新缓冲区
细节
创建字符输出流对象:
参数是字符串表示的对象,或者File对象都可以
如果文件并不存在会创建一个新文件,但要保证父级路径存在
如果文件已经存在则清空文件,不想清空可以打开续写开关
写数据:
如果write方法的参数是整数,但实际上写到本地文件中的是证书在字符集上对应的字符
释放资源
同理
3.字符集

三、编码解码代码实现
1.编码方法

2.解码方法

出现乱码的原因
1.读取数据时未读完整个汉字
2.编码和解码时的方式不统一
四、高级流
1.缓冲流(buffered)

字节缓冲流

特有方法

2.转换流
是字符流与字节流之间的桥梁

字符转换输入流&&字符转换输出流

3.序列化流

细节:使用对象输出流保存到文件会出现异常
解决方案:据要让javabean类实现Serializable接口
4.打印流

字节打印流(printstream)/字符打印流(printwriter)
特点:
1.打印流只操作文件目的地,不操作数据源;
2.特有的写出方法可以实现,数据原样写出
3.特有的写出方法,可以实现自动刷新,换行
字节打印流方法

构造

成员

5.解压缩流

总结
这周唯一的期望是可以平安通过考核。
下周计划:进入考试准备时间,总之重心会放到其他地方去了。
2万+

被折叠的 条评论
为什么被折叠?



