IO 流(一)

一、流的概念

  • 在计算机中,流是个抽象的概念,是对输入输出设备的抽象。
  • 数据以二进制的形式在程序与设备之间流动传输
  • 流具有方向性,可以分为输入和输出。(以 java 文件为参照)

二、流的分类

根据数据的流向分为:

输入流和输出流

  • 输入流 :把数据从其他设备上读取到程序中的流
  • 输出流 :把数据从程序中写出到其他设备上的流

根据数据的类型分为:

字节流和字符流

  • 字节流 :以字节为单位(byte),读写数据的流
  • 字符流 :以字符为单位(char),读写数据的流

三、流的结构

在Java中,和IO流相关的类,主要是在 java.io 包下的定义的

几乎所有的流,都是派生自四个抽象的父类型:

  • InputStream ,代表字节输入流类型
  • OutputStream ,代表字节输出流类型
  • Reader ,代表字符输入流类型
  • Writer ,代表字符输出流类型

 栈的深度(一个线程内能定义多少方法)  宽度(线程个数)

四、字节流

java.io.InputStream 是所有字节输入流的抽象父类型

//每次读一个字节,返回值是本次读取的字节值

public abstract int read() throws IOException;

//每次读多个字节,并存放到指定的字节数组中,返回值是本次一共读取了多个字节(字节数)

public int read(byte b[]) throws IOException {

        return read(b, 0, b.length);

        }

//每次读多个字节,并存放到指定的字节数组中,返回值是本次一共读取了多个字节(字节数)

//同时可以指定从数组的什么位置开始存放,以及在数组中最多存放多个字节

  

       public int read(byte b[], int off, int len) throws IOException {

InputStream 中的 skip 方法,可以让我们先跳过指定的字节数,再开始读数据

available()  是否可用     

markSupported()   是否支持标记(部分支持)

mark() 标记    

java.io.OnputStream 是所有字节输出流的抽象父类型

//写出去一个字节值

public abstract void write(int b) throws IOException;

//写出字节数组,指定开始位置,以及写出的字节数量 

public void write(byte b[], int off, int len) throws IOException {

close()  

flush()  从缓存中写出去

write(byte[] b)

write(byte[] b, int off , int len)

write(int b)

五、字节输入流

在代码中,使用流操作数据的的基本步骤是:

1. 声明流

2. 创建流

3. 使用流

4. 关闭流

1、read()方法

//从控制台读取数据  命令行/         InputStream is = null;
is =System.in;                 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值