java学习笔记——IO流

java中的流是实现输入/输出的基础。Java中吧所有的输入/输出源都抽象地表述为“流”(stream),通过流的方式允许java程序使用相同的方式访问不同的输入/输出源。stream是从源(source)到池(sink)的有序数据。

流的分类:

输入流:只能从中读入数据,不能向其中写入数据。

输出流:只能向其中写入数据,不能从中读入数据。

(输入/输出都是相对于java程序(程序运行所在内存)而言)

 

字节流:操作流的单位是8位的字节,以InputStream、OutputStream作为基类。

字符流:操作流的单为是16位的字符,以Reader、Writer作为基类。

 

节点流:直接连接到实际的输入/输出数据源。

处理流(包装流):不直接连接到实际的输入/输出源,而是对一个已经存在的流进行连接或封装。

 

四大基流(他们都是抽象类):

InputStrem、OutputSteam:所有输入流的基流。

Reader、writer:所有输出流的基流。


InputStrem、Reader

InputStrem方法:

int read();读入一个字节,返回所读取的字节(转换为int)

int read(byte[] b);从输入流中读取最多b.length个字节,返回实际读取的字节数

int read(byte[] b,int off,int len);从输入流中最多读取len个字节,储存时从off处开始,返回实际读取的字节数

Reader方法:同字节流InputStream相似,只是把读取单位换成了字符。

int read();

int read(char[] b);

int read(char[] b,int off,int len);

他们对应的子类:FileInputStream,FileReader,他们都是节点流

操作记录指针:

void mark(int readAheadLimit);//在当前记录指针出记录一个标记mark

boolean markSupported();//判断此流是否支持mark操作

void reset();//将此流的指针重新定位到上一次记录mark标记的位置

long skip(long n);//跳过n个字节/字符


OutputStream与Writer

void write(int c);//将指定字节/字符输出到输出流,其中c既可以代表字节也可以代表字符

void write(byte[]/char[] b);//将指定字节/字符数组输出到输出流中

void write(byte[]/char[] b,int off,int len);//把指定字节/字符数组中从off开始的长为len的部分住处到输出流中。

因为Writer操作的是字符,所以其中还有以下两个方法:

void write(String str);//将指定字符串输出到输出流中

void write(String str,int off,int len);//将指定字符串中从off开始,长len的字符串输出到输出流中。


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值