欢迎访问宙启技术站
智能推送

Java中的IO函数详解——InputStream、OutputStream、Reader、Writer

发布时间:2023-06-15 09:05:56

Java中IO函数是使用文件和资源读取和写入的一种基本方法。 Java中的IO函数主要由四种基本模式构成:InputStream、OutputStream、Reader和Writer。InputStream和OutputStream主要处理二进制数据,Reader和Writer主要处理字符数据。

InputStream

InputStream是Java中所有输入流类的基类。InputStream类专门用于读取二进制流的操作。InputStream类的实例可以作为参数传递给其他函数,以便在流之间传递数据。InputStream的常用函数有:

read():用于读取一个字节的数据,并将其作为int类型返回,如果流已经到达末尾,则返回-1。

read(byte[] b):读取字节数组b中的字节,并返回读取到的字节数。如果没有数据可以读取,则返回-1。

read(byte[] b, int off, int len):从输入流中读取最多len个字节,在读取了len个字节或者达到流的末尾之前,将读取到的字节填充到b数组中(从off索引处开始)。返回实际读取到的字节数。

skip(long n):跳过并且丢弃输入流中的n个字节。当读取到文件末尾时,返回值小于n。

available():返回输入流中可以读取的字节数。

close():关闭输入流并且释放相关资源。

OutputStream

OutputStream是Java中所有输出流类的基类。OutputStream类专门用于写入二进制数据的操作。OutputStream的常用函数有:

write(int b):将一个字节写入输出流中。

write(byte[] b):将字节数组中的所有数据写入输出流中。

write(byte[] b, int off, int len):写入数组b中,从索引off开始,写入len个字节的数据。

flush():将输出流的缓冲区刷新,并将缓冲区中的数据全部写入输出流中。

close():关闭输出流并且释放相关资源。

Reader

Reader是Java中所有字符输入流类的基类。Reader类专门用于读取字符流的操作。Reader的常用函数有:

read():读取单个字符并以int类型返回其对应的ASCII码,如果流已经到达末尾,则返回-1。

read(char[] cbuf):将最多cbuf.length个字符读取到字符数组cbuf中,并返回读取到的字符数。如果没有数据可以读取,则返回-1。

read(char[] cbuf, int off, int len):将最多len个字符读取到字符数组cbuf中(从写入到cbuf中的off位置开始),并返回读取到的字符数。如果没有数据可以读取,则返回-1。

readLine():读取一行文本,并返回一个String对象,不包括行尾的任何终止符。如果没有数据可以读取,则返回null。

skip(long n):跳过并且丢弃输入流中的n个字符。当读取到文件末尾时,返回值小于n。

close():关闭输入流并且释放相关资源。

Writer

Writer是Java中所有字符输出流类的基类。Writer类专门用于写入字符流的操作。Writer的常用函数有:

write(String str):将字符串str写入输出流中。

write(char[] cbuf):将字符数组中的所有数据写入输出流中。

write(char[] cbuf, int off, int len):写入数组cbuf中,从索引off开始,写入len个字符的数据。

flush():将输出流的缓冲区刷新,并将缓冲区中的数据全部写入输出流中。

close():关闭输出流并且释放相关资源。

总结

Java中IO函数的四个主要类总结如下表格。

|  类名  |  作用  |  读取  |  写入  |

|-------|--------|--------|--------|

|InputStream|读取二进制数据|read()、read(byte[] b)|无|

|OutputStream|写入二进制数据|无|write(int b)、write(byte[] b)|

|Reader|读取字符数据|read()、read(char[] cbuf)|read(char[] cbuf, int off, int len)、readLine()|

|Writer|写入字符数据|无|write(String str)、write(char[] cbuf, int off, int len)|

以上是Java中IO函数的一些常用函数,我们可以根据我们的需求,利用这些函数来操作相关资源。在编写Java程序时,IO函数无疑是非常重要的一部分。