异常:
异常作用一:异常是用来查询bug的关键信息;
异常作用二:异常可以作为方法内部一种特殊的返回值,以便通知调用者的底层的执行情况;
spilt拆分字符串用什么符号就什么拆分;
异常处理方式:
1.jvm默认的处理方式;
2.自己处理;
3.抛出处理;
1.jvm默认的处理方式
如果出错上面会被执行,上面可以被执行;
2.自己处理(捕获异常)
try{
可能出现异常的代码;
}catch(异常类名 变量名){
异常处理的代码;
处理方式:
异常处理书写
}
该处理方式可以继续往下执行;
(1)如果try没有遇到问题该怎么执行?
没有遇到问题就不会执行catch并且执行try中的所有信息
(2)如果try遇到多个问题该怎么执行?
遇到错误匹配下方catch中的代码;
匹配不到则会jvm自动报错;
可以写多个catch的代码;
父类写下面的catch的;
从上往下依次匹配;
若try下面有其他代码,则不会被执行;
(3)如果try遇到问题没有捕获该怎么执行?
没有问题对应类型则会虚拟机jvm自动报错,
jvm自动终止;
(4)如果try遇到问题,那么try下的代码还可以执行吗?
不会被执行;
idea快速生成if等语句的快捷键Ctrl +alt + T;
异常常用方法(写在catch里面):
getMessage();
toString();
printStackTrace();//以红色字体输出,跟多线程有关;
用来打印错误的信息:System.err.println(123);
3.抛出处理:
1.throws (写在方法定义后)声明一个异常;
告诉调用者,使用本方法可能会有哪些异常;
编译时异常必须写,运行时异常可以不写;
2.throw(写在方法内结束方法)手动抛出异常对象,交给调用者;
方法中下面的代码不在被执行;
区别:抛出告诉调用者错误,捕获不让程序停止;
3.自定义异常:
(java中的异常:继承 空参 带参构造)
{起名字技巧:带exception}
File的相关知识:
io流(存储和读取数据的解决方案 i表示input,o表示output){
保存到游戏进度并加载进度;
程序是运行在内存当中的;
流的方向(
输入流:读取;
输出流:写出;)
操作文件类型:(
字节流:操作所有类型的文件;
字符流:纯文本文件(widdows自带的记事本可以读懂的如md,txt,word不是纯文本文件);
)
(FileOutputStream输出字节流;
write(数字转化为字符);
close();
换行写;创建对象是默认是false,不会续写;
只要创建对象,没开启续写就会清除文件;
没有文件夹不会创建成功;
FileIntStream字节输入流(暂时不写中文):
1.读取:
read(空参)返回值int(字符转化为数字)类型,并自动移动到下一个字节(移动指针),可以强转成char变成字母;
如果读取完了再进行读取就会返回-1;
close();
2.细节:(1)如果文件不存在,直接报错(创建了也是空的,没有意思,不如不创建);
(2)一次读一个字节,是ascll上对应的数字,读到末尾返回-1;
2.FileIntStream(字符输入流)循环读取:
while((b=fis.read())!=-1){
sout(char(b))}
)
(文件拷贝:
FileInputStream fis=new FileInputStream("D:\\typora\\Typora\\typora-setup-x64.exe");
FileOutputStream fos=new FileOutputStream("D:\\aaa\\tt.exe");
int b=0;
while ((b=fis.read())!=-1){
fos.write(b);
}
fos.close();
fis.close();
弊端:一次只能拷贝一个字节,速度太慢;
可以利用数组来加快速度;
覆盖式数组,读取不到无法覆盖;
利用string[bytes,0,len]转成字符串;
)
(字符集解释:
字节是计算机最小对储存单元;
1字节八比特;
存贮中文英文;
1.ascii码表:
一共128个字符;
编码前面补0,补够八位;
解码直接转成十进制;
2.GB2312字符集:
GBK字符集:全部中日韩的汉字;
简体中文表示ansi在windowns;
中文编码高位字节以一开头,且用两个字节储存;
GBK完全兼容ascii码表
3.unicode字符集(万国码):
utf-8:
ascii码表一个字节,中文三个字节;)
字符流:{
FileReader:和FileInputStream类型
(创建对象和字节流类似);
FileWtiter:和FileOutputStream类型;
}}