基础IO类和相关方法

IO类最基本的有四个抽象类,InputStreamOutputStreamReaderWriter。最基本的方法是read()和write()方法,其他都是这四类流的子类,方法也是通过这两类方法衍生而成。大部分的IO源码都是native标注,源码都是C/C++写的。

1、InputStream

InputStream是定义了一个Java流式字节输入模式的抽象类。该类的所有方法在出错条件下引发IOException异常,它的主要方法如下:

方法

方法介绍

public int available()

返回可读的字节数量

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

把从第off位置读取len长度字节的数据放到byte数组中

public abstract  int read()

读取数据

public long skip(long n)

跳过指定个数的字节

public void close()

关闭流,释放资源

public synchronized void reset()

重置读取位置为上次mark标记的位置

public boolean markSupported()

如果调用的流支付mark()/reset()就返回true

2、OutputStream

OutputStream定义了一个Java流式字节输出模式的抽象类,该类的所有方法返回一个void值并且在出错的情况下引发一个IOException异常。主要方法如下:

方法

方法介绍

void write(int b)

void write(byte buffer[])

void write(byte buffer[],int offset,int numBytes)

写入数组bufferbuffer[offset]

void flush()

刷新缓冲区

void close()

关闭输出流,关闭后的写操作会产生IOException异常

3、Reader

Reader类是Java定义的流式字符输入模式的抽象类。类中的方法在出错时引发IOException异常

方法

描述

int read()

如果调用的输入流的下一个字符可读则返回一个整型,遇到文件尾时返回-1

int read(char buffer[])

从缓冲区中读取字符,返回实际成功读取的字符数,遇到文件尾返回-1

abstract  int read(char buffer[],int offset,int numChars)

试图读取buffer中从buffer[offset]开始的numChars个字符,返回实际成功读取的字符数,遇到文件尾返回-1

Boolean ready()

如果下一个输入请求不等待则返回true,否则返回false

Long skip(long numChars)

跳过numChars个输入字符,返回跳过的字符数

Boolean markSupported()

判断当前流是否支持标记流

void reset()

重置读取位置为上次mark标记的位置

void mark(int numChars)

在输入流的当前位置设立一个标志。该输入流在numChars个字符被读取之前有效

abstract  void close()

关闭输入源,进一步的读取将会产生IOException异常

4、Writer

Writer是定义流式字符输出的抽象类,所有该类的方法都返回一个void值并在出错条件下引发IOException异常。

方法

描述

void write(char buffer[])

向一个输出流写一个完整的字符数组

abstract  void write(char buffer[],int offset,int numChars)

向调用的输出流写入数组buffer[offset]为起点的numChars个字符区域的内容

abstract  void close()

关闭输出流,关闭后进行写操作会产生IOException异常

abstract  void flush()

刷新缓冲区

Writer append(CharSequence csq)

追加一个字符序列

Writer append(CharSequence csq,int start,int end)

追加写入一个字符序列的一部分,从start位置开始,end位置结束

Writer append(char c)

追加写入一个16位的字符

欢迎批评指正,提出问题,谢谢!
原文地址:https://www.cnblogs.com/xxeleanor/p/14402416.html