java--IOStream

java流式输入/输出原理
在java程序中,对于数据的输入、输出操作以“流”的方式进行,用以获取不同的数据。

程序中通过标准的方法输入和输出数据。

java.io包定义了多个流类型(类或抽象类)来实现输入、输出功能。
注:所有的输入和输出都是站在程序的角度来说明的。

可以从不同的角度对其进行分类。
<1>按照处理数据的单位不同可以分为字节流和字符流。
<2>按照功能不同可以分为节点流和处理流。
注:
节点流:节点流为可以从一个特定的数据源(节点)读写数据(如:文件、内存)
处理流:处理流是“连接”在已存在的流(节点流或者处理流)之上,通过对数据的处理为程序提供更为强大的读写功能。

图片.png

四个抽象类的输入输出:


图片.png

InputStream:


图片.png

//读取一个字节并以整数的形式返回(0~255)
//如果返回-1,说明已到输入流的末尾。
int read() throws IOException

//读取一系列字节并存储到一个数组buffer
//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
int read(byte[] buffer) throws IOException

//读取length个字节
//并储存到一个字节数组BUffer中,从offset开始
//返回实际读取的字节数,如果读取前已到输入流的末尾返回-1
int read(byte[] buffer, int offset, int length) throws IOException

//关闭流释放内存资源
void close() throws IOException

//跳过n个字节不读,返回实际跳过的字节数
long skip(long n) throws IOException

OutPutStream的基本方法
//向输出流中写入一个字节数据,该字节数据为参数b的低8位。
void write(int b)throws IOException

//将字节类型的数组中的数据写入到输出流
void write(byte[] b) throws IOEXception

//将一个字节类型的数组中的从指定位置开始的(off)开始的len个字节写入到输出流。
void write(byte[] b, int off, int len)throws IOEception

//关闭流释放内存资源
void close() throws IOException

//将输出流中缓冲的数据全部写出到目的地
void flush() throws IOException

字符流:两个字节的输入或者输出

图片.png

Reader用于向程序中输入数据,且数据的处理单位是两个字节。

图片.png

//读取一个字符并以整数的形式返回(0~255)
//如果返回-1已到输入流的末尾
int read() throws IPEXception

//读取一些列字符并存储到一个数组buffer
//返回实际读取的字符数,如果读取前已到输入流的末尾返回-1
int read(char[] cbuf) throws IOExcetion

//读取length个字符
//并存储到一个数组BUffer,offset位置开始
//返回实际读取的字符数,如果读取前已到输入流的末尾返回-1
int read(char[] cbuf, int offset, int length) throws IOException

//关闭流释放内存资源
void close() throws IOException

//跳过n个字符不读,返回实际跳过的字节数
long skip(long n) throws IOException

Writer输出一个字符数据:


图片.png

//向流中写入一个字符数据,该字符数据为参数b的低16位
void write(int b ) throws IOException

//将一个字符类型的数组中的数据写入输出流
void write(char[] cbuf) throws IOException

//将一个字符类型的数组中的从指定位置(offset)开始的length个字符写入到输出流
void write(char[] cbuf, int offset, int length) throws IOException

//将一个字符串中的字符写入到输出流
void write(String string) throws IOException

//将一个字符串从offset开始的length个字符写入到输出流
void write(String string, int offset, int length) throws IOException

//关闭流释放内存资源
void close() throws IOException

//将输出流中缓存的数据全部写出到目的地
void flush() throws IOException

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,958评论 18 399
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,508评论 19 139
  • 一、流的概念和作用。 流是一种有顺序的,有起点和终点的字节集合,是对数据传输的总成或抽象。即数据在两设备之间的传输...
    布鲁斯不吐丝阅读 13,422评论 2 95
  • 反反复复的改脸型,最后发现还是最开始的最好,,,
    团子的安阅读 2,726评论 0 1
  • 当了一辈子老师的大姨今年93岁了。我知道她最喜欢人家称呼她----“许姓”。出身书香门第的她小时候就读铜山古城宝智...
    怣慧阅读 4,406评论 16 13