【J2SE快速进阶】——IO流的四个基本抽象类InputStream、OutputStream、Reader、Writer
来源:互联网 发布:淘宝刷流量有用吗 编辑:程序博客网 时间:2024/05/29 08:39
上文中对java.io包中的四个抽象类及其关系简单了解了一下,这里进一步对它们及其子类进一步总结一下。
在上篇博客末尾,贴出了Java中的整个IO家族,之后小编又重修改了一下,在之前的基础上,标识出了节点流与处理流(绿色为节点流,黄色为处理流)。
这里我们分别来说一下这四个抽象类。
细心的你也许会发现,大部分输入流和输出流都是成对的,有输入就有输出,一一对应。
InputStream
输入字节流InputStream的作用是标志那些从不同数据起源产生输入的类。
基本方法有:
int read()方法:读取一个字节,以整数的形式返回(0~255),如果返回-1,则已经到了输入流的末尾;
int read(byte[ ] b)方法:读取一系列字节并存储到一个数组b中,返回实际读取的字节数,如果读取前已经到了输入流的末尾,则返回-1;
int read(byte[ ] b,int off,int len)方法:读取至多len个字节并存储到一个字节数组b中,返回实际读取的字节数,如果读取前已经到了输入流的末尾,则返回-1;
void close()方法:关闭此输入流并释放与该流有关的系统资源。
long skip(long n)方法:跳过n个字节不读,直接跳到n个字节之后,返回实际跳过的字节数。
需要定义 InputStream
子类的应用程序必须总是提供返回下一个输入字节的方法。
OutputStream
输出字节流OutputStream接受输出字节并将这些字节发送到某个接收器。
基本方法有:
void write(int b)方法:将指定的字节写入此输出流。
void write(byte[ ] b)方法:将b.length个字节从指定的byte数组写入此输出流。
void write(byte[ ] b,int off,int len)方法:将指定byte数组中从偏移量off开始的len个字节写入此输出流。
void close()方法:关闭此输出流并释放与此流有关的系统资源
void flush()方法:刷新此输出流并强制写出所有缓冲的输出字节。
需要定义OutputStream
子类的应用程序必须始终提供至少一种可写入一个输出字节的方法。
Reader
输入字符流Reader定义了以字符为单位读取数据的方法。
基本方法有:
int read()方法:读取一个字符并以整数的形式返回(0~255),如果已经到了输入流的末尾,则返回-1.
int read(char[ ] cbuf)方法:读取一系列字符并存储到一个数组b中,返回实际读取的字符数,如果读取前已经到了输入流的末尾,则返回-1;
int read(char[ ] cbuf,int off,int len)方法:读取至多len个字符并存储到一个数组cbuf中,返回实际读取的字节数,如果读取前已经到了输入流的末尾,则返回-1;
void close()方法:关闭此输入流并释放与该流有关的系统资源。
long skip(long n)方法:跳过n个字符不读,直接跳到n个字节之后,返回实际跳过的字符数。
子类必须实现的方法只有 read(char[], int, int) 和 close()。但是,多数子类将重写此处定义的一些方法,以提供更高的效率和/或其他功能。
Writer
输出字符流Reader定义了以字符为单位写数据的方法。
基本方法有:
void write(int c)方法:向输出流中写入一个字符c。
void write(char[ ] cbuf)方法:向输出流中写入字符数组cbuf。
void write(String str)方法:向输出流中写入字符串str。
void write(char[ ] cbuf,int off,int len)方法:将指定字符串数组cbuf中从偏移量off开始的len个字符写入此输出流。
void write(String str,int off,int len)方法:将指定字符串str中从偏移量off开始的len个字符写入此输出流。
虽然这四个抽象类都定义了相应的方法,但在进行数据的读写时,真正用到的都是其子类,子类通常会重新定义相关方法。后面实践时再举例说明一些基本、常用的类。
- 【J2SE快速进阶】——IO流的四个基本抽象类InputStream、OutputStream、Reader、Writer
- 黑马程序员——java基础 io 流 四个基类InputStream,OutputStream,Reader,Writer
- J2SE第八章——IO输出输出流(InputStream、OutPutStream、Reader、Writer)
- Java IO操作——字节流(OutputStream、InputStream)和字符流(Writer、Reader)
- Java IO操作——字节流(OutputStream、InputStream)和字符流(Writer、Reader)
- 黑马程序员--------java IO流 Reader、Writer、InputStream、OutputStream
- Java IO 文件流的读,文件流写Writer,Reader,InputStream,OutputStream封装
- Java IO 文件流的读,文件流写Writer,Reader,InputStream,OutputStream封装
- Reader/Writer与InputStream/OutputStream的区别
- InputStream、OutputStream、Reader和Writer的关系
- 黑马程序员_学习笔记:13) IO流: 字节流(InputStream、OutputStream)、字符流(Reader、Writer)、File类、递归
- Java IO--字节流与字符流OutputStream/InputStream/Writer/Reader
- Java IO--字节流与字符流OutputStream/InputStream/Writer/Reader
- Java IO--字节流与字符流OutputStream/InputStream/Writer/Reader
- 02_IO操作的基本规律(InputStream,OutputStream,Reader,Writer,FileReader,FileWriter,BufferedReader,BufferedWri
- Java InputStream和OutputStream,Reader和Writer的辨析
- Java I/O流-总结(InputStream,OutputStream,Reader,Writer)
- Java I/O流-总结(InputStream,OutputStream,Reader,Writer)
- dw1000 心得
- 安卓数据的加密
- low power listense
- github入门教程:第一步管理 帖子编辑
- 【ACM之旅】01序列2 (奇数串)
- 【J2SE快速进阶】——IO流的四个基本抽象类InputStream、OutputStream、Reader、Writer
- Github for Windows使用图文教程
- python模块以及导入出现ImportError: No module named 'xxx'问题
- 见过最好的git入门教程 .
- 见过最好的git入门教程 .
- Struts2中的植栈
- 王垠的「40 行代码」真如他说的那么厉害吗?
- C#设计模式(十五)状态者模式
- 用 excel 將一般日期轉成 unix timestamp