day19 异常 API---IO
1、异常
a、程序出现的不正常的情况
b、异常体系
Throwable
|-- Error 严重问题 ,我们处理
|--Exception
|---RUntimeException 运行异常 ,修正
|---非Run。。。。。 编译异常,必须处理
c、异常的处理
A:jvm 默认处理
将信息输出,程序停止运行
B:自己处理
1、try ...catch ...finally
自己编码出来了代码
2、throws
自己处理不了,在方法上面声明,告诉调用者,这里有问题
d、 throw和throws区别?
throws是用来声明一个方法可能抛出的所有异常信息 throw则是指抛出的一个具体的异常类型。 通常在一个方法(类)的声明处通过throws声明方法(类)可能抛出的异常信息,而在方法(类)内部通过throw声明一个具体的异常信息。 throws通常不用显示的捕获异常,可由系统自动将所有捕获的异常信息抛给上级方法; throw则需要用户自己捕获相关的异常,而后在对其进行相关包装,最后在将包装后的异常信息抛
2、File类
1、IO流中大部分操作是对文件的操作,所以java就提供了File类供我们来操作文件。
2、构造方法
A:File flie = new File("E:\\demo\\a.txt");
B:File flie = new File("E:\\demo","a.txt");
C:File flie = new File("E:\\demo");
3、成员方法
A:创建功能 public Boolean createNewFile()
P B mkdir();
P B mkdirs();
删除功能:
P B delete()
重命名功能: P B renameTO(File dest)
判断功能 :
P B idDirectory()
P B idFile()
P B exists()
P B canRead()
P B canWrite()
P B isHidden()
基本获取功能
public string getAbsolutePath()
p s getPath()
p s getName()
p long length()
P long lastModified()
高级获取功能
public string [ ] list ()
public File[ ] listFIle()
day20
1、递归
出口条件 自身调用规律
注意事项:
A:要有出口,否则就是死递归
B:次数不能过多,否则内存溢出
C:构造方法 不能用递归
2、IO流
1、用于在设备间进行 数据传输操作
2、分类:
A:流向:
输入流: 读入数据
输出流: 写出数据
B:类型
字节流
字符流
3、FileOutput Stream 写数据
FOS fos = new FOS("a.txt");
fos.write("hello".getByte());
fos.close();
4、 FileInputStream 读取数据
FIS fis = new FIS("b.txt");
//方式1
int by = 0 ;
while((by = fis.read() )!=-1){
syso((char)by);
}
//方式2
byte[ ] bys = new byte[1024];
int len = 0;
while((len = fis.read(bus) )!=-1){
syso(new string(bys,0,len));
}
5、字节缓冲区流A:BufferedOutputStream
B:BufferedInputStream 解决速度问题