Java IO 系列(01)-Java IO概述
2016-09-23 00:00
549 查看
1. 引言
趁着有时间,看了下JDK1.7 API 对Java.lang.io包下经常用到的Java IO处理类做了一些总结性的东西,希望能对Java开发者有点用。2.Java IO概述
所谓IO,也就是Input与Output的缩写。在java中,IO涉及的范围比较广泛,包括:文件读写、标准设备输出等。Java中IO是以流为基础进行输入输出的,所有数据被串行化写入输出流,或者从输入流读入。在java io的称呼中,我们经常会提到“输入流”、“输出流”等等概念。首先,什么是流呢?
所谓“流”,就是一种抽象的数据的总称,它的本质是能够进行传输。
a) 按照“流”的数据流向,可以将其化分为:输入流和输出流。
b) 按照“流”中处理数据的单位,可以将其区分为:字节流和字符流。在java中,字节是占1个Byte,即8位;而字符是占2个Byte,即16位。而且,需要注意的是,java的字节是有符号类型,而字符是无符号类型!
3.Java IO架构
当然这还有些不完整,Serializable接口还未给出,这里只先讨论Java IO常用类,稍后讨论serializable。![](https://static.oschina.net/uploads/space/2016/0923/133738_W3k8_2808406.png)
我们将按照不同的类来详细讲述各个类的功能及其实现原理。
3.1 InputStream
InputStream类是所有字节输入流的超类,其函数类表如下:// 构造函数 InputStream() int available() void close() void mark(int readlimit) boolean markSupported() int read(byte[] buffer) abstract int read() int read(byte[] buffer, int offset, int length) synchronized void reset() long skip(long byteCount)
所有继承了InputStream的子类都具有此类方法。
3.2 OutputStream
OutputStrem类是所有字节输出流的超累,其代码列表如下:package java.io; public abstract class OutputStream implements Closeable, Flushable { // 将字节b写入到“输出流”中。 // 它在子类中实现! public abstract void write(int b) throws IOException; // 写入字节数组b到“字节数组输出流”中。 public void write(byte b[]) throws IOException { write(b, 0, b.length); } // 写入字节数组b到“字节数组输出流”中,并且off是“数组b的起始位置”,len是写入的长度 public void write(byte b[], int off, int len) throws IOException { if (b == null) { throw new NullPointerException(); } else if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) { throw new IndexOutOfBoundsException(); } else if (len == 0) { return; } for (int i = 0 ; i < len ; i++) { write(b[off + i]); } } public void flush() throws IOException { } public void close() throws IOException { } }
4.Java IO目录
(等其他博文写完,再来补充)相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序