Java中IO流,File,异常
IO流:
input (输入)output(输出)
原理:
存储机制:
硬盘,内存, 缓存
硬盘:大容量的存储机制,文件数据
内存:运行中的程序数据
缓存:屏幕中看到的数据
流的流动方向:硬盘>内存> 硬盘
流的机制:
流的划分;
根据传输介质:字符和字节
根据传输方向:输入和输出(内存的角度)
要从硬盘吧数据映入到内存:输入
要从硬盘吧数据传入到内存:输出
字节和字符的概念:
字节 : 是计算机存储的最小单位(bit是计算机运行的最小单位)
字符:一个英文等于一个byte 一个中文是2个byte
四个抽象类:InputStream、OutputStream、Reader、Writer
入门流(文件字节输入输出):FileInputStream、FileOutputStream
字节流 :InputStream :输入流
OutputStream:输出流
FileReader:
FileWriter:
FileInputStream:字节输入
FileOutputStream:字节输出
BufferedReader:缓冲流
从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
字符流:Reader Write
字节输入:read(int) read(byte[])
如何把字节数组转化为字符串:
byte[] buf = new byte[5];
字节输出:writer (int) writer[byte]
FileInputStream <文件字节输入流>
InputStreamReader<文件字符输入流>
BufferedReader<文件缓冲流>
字节输入:read(int) read(byte[])
如何把字节数组转换为字符串
String str = new String(byte,o,v);
字节输出:write(int) write(byte[])
如何把字符串转换为字节数组
byte[] bytes = str.get.getBytes();
字符输出:write(int) wirte(char[])
如何把字符串转化为字符串:
char[] chars = str.gettoCharArray();
File:
File 对象 指的是 文件和目录路径名的抽象表示形式。
1.数据结构,数组 临时的
文件,数据库 持久化
File的构造方法:
绝对路径:从根目录开始的一个完整路径
相对路径:绝对同一级目录的路径
强制转型:
(student sut = new student();
UNStudent stu = (UNStudent)stu;
自动转型;子类对象自动转换为父类(student stu = new NUStudent();)
异常:
异常分为 :受检异常 (非运行时检查到的异常) 非受检时的异常(运行时异常)
捕获异常处理机制:try与cath
异常结构继承体系:
try catch 的方法:
try{
//可能出现异常的代码部分
}catch(异常类型 异常变量){
//执行异常操作
}catch(异常类型 异常变量){
//执行异常操作
}
finally{
//处理完try与catch操作后的收尾操作,异常统一出口
}
finally关键字,在进行异常处理之后,在异常的处理格式中还有一个finally语句,此语句将作为异常
的统一出口,不管是否产生异常, 最终都要执行此段代码
如果try中有return语句,则会先执行return语句,后执行finally,最后返回整个方法
抛出异常处理机制:throws方法抛出异常
public void test() throws 异常类型{
//存在异常的代码块
}
throw异常对象注意:
throw一般存在于catch语句当中,用于出现异常后的一种操作方式
捕捉的异常和抛出的异常不一定相同,可以不一样
throw抛出的异常对象如果是检测异常,则所在的方法必须要通过throws显性抛出
throw抛出的异常对象如果是非检测异常,则方法上可以选择性定义throws
自定义异常:
自定义异常一般是自己定义一个类来扩展Exception类
格式:public class 自定义异常类名 extends Exception{}
自定义异常一般适用于throw代码块抛出