IO流概述和分类
概述
1、IO:输入(Input)和输出(Output)2、流:是一种抽象概念,是对数据传输的总称,也就是说数据在设备间的传输称为流,流的本质是数据传
IO流分类
1、按照数据的流向分为输入流和输出流2、按照数据类型分为字节输入流、字节输出流和字符输入流、字符输出流
字节流写数据
字节流抽象基类
InputStream:所有输入流的超类OutputStream:所有输出流的超类
使用字节输出流的步骤
1、创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件2、调用字节输出流对象的写数据方法 3、释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)
示例代码
public static void main(String[] args){
//创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件
FileOutputStream os = new FileOutputStream("F:\\A")
//调用字节输出流对象的写数据方法
os.write(int b);
//释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)
os.close;
}
字节流写数据的三种方式
方法名 | 说明 |
---|---|
void write(int b) | 将指定的字节写入此文件输出流 一次写一个字节数据 |
void write(byte[] b) | 将 b.length字节从指定的字节数组写入此文件输出流 一次写一个字节数组数据 |
void write(byte[] b, int off, int len) | 将 len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流 一次写一个字节数组的部分数据 |
实例代码
public static void main(String[] args){
//将指定的字节写入此文件输出流 一次写一个字节数据
FileOutputStream os = new FileOutputStream("F:\\A\\fos.txt")
os.write(int b);
//将 b.length字节从指定的字节数组写入此文件输出流 一次写一个字节数组数据
byte[] bytes1 = "abcde".getBytes();
os.write(bytes);
//将 len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流 一次写一个字节数组的部分数据
byte[] bytes2 = "abcde".getBytes();
os.write(bytes2,0,3);
//释放资源
os.close;
}
异常处理
第一种方式
public static void main(String[] args){
FileOutputStream os = null;
try{
os = new FileOutputStream("F:\\A");
os.write("java".getBytes());
}catch(IOException e){
e.printStackTrace();
}finally{
if(os != null){
try{
os.close();
}catch (IOException e) {
e.printStackTrace();
}
}
}
}
第二种方式(自动关流)
public static void main(String[] args){
try(FileOutputStream os = new FileOutputStream("F://A");){
os = new FileOutputStream("F:\\A");
os.write("java".getBytes());
}catch (IOException e) {
e.printStackTrace();
}
}