io流

IO 流

io流示意图:
在这里插入图片描述

流: 一连串流动数据的管道
数据源 → 目的地

流的分类:

按流向划分:
输入流: 带有input 或 reader 的流
输出流: 带有output 或 writer 的流

按操作单元划分:
字节流: 带有input 或 output 的流
字符流: 带有reader 或 writer 的流

按功能划分:
节点流: 直接从数据源到目的地
    文件 数组 字符串 管道
功能流: 经过包装
    缓存 转换 对象 数据 打印


IO流的超类:

字节流:
InputStream 和 OutputStream

字符流:
Reader 和 Writer

超类不能实例化


测试复制文件: 代码

package code;

import java.awt.im.InputContext;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.security.CryptoPrimitive;

//测试复制
public class TestOutputStream {
	public static void main(String[] args) throws IOException {
		/*
		 * //第一步 选择流 InputStream is = new FileInputStream("D:/abc.txt");
		 * OutputStream os = new FileOutputStream("D:/aaa/abc.txt"); //第二部 准备数组
		 * byte[] car = new byte[1024]; //第三部 读写读入 int len = -1;//默认无数据输出-1
		 * while((len=is.read(car))!=-1){ os.write(car, 0, len); } //第四部 刷出
		 * os.flush(); //第五步 关闭 先打开的后关闭 os.close(); is.close(); //处理异常
		 */

		// 添加
		InputStream is = null;
		OutputStream os = null;
		try {
			is = new FileInputStream("D:/abc.txt");
			os = new FileOutputStream("D:/aaa/abc.txt");
			// 第二部 准备数组
			byte[] car = new byte[1024];
			// 第三部 读写读入
			int len = -1;// 默认无数据输出-1
			while ((len = is.read(car)) != -1) {
				os.write(car, 0, len);
			}
			// 第四部 刷出
			os.flush();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			// 第五步 关闭 先打开的后关闭
			// 作用域不对 上面需要添加
			if (os != null) {
				os.close();
			}
			if (is != null) {
				is.close();
			}

		}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值