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

Java中的IO函数:如何进行输入输出流操作

发布时间:2023-06-25 03:18:12

Java语言支持多种IO流操作,包括字节流、字符流、缓冲流和对象流等,本文将重点介绍如何进行输入输出流操作。

一、字节流(InputStream和OutputStream)

Java提供了两个基类来表示字节流:InputStream和OutputStream。InputStream类用于从输入流读取字节,而OutputStream类用于将字节写入输出流。

1. InputStream的常用方法:

(1)int read():读取下一个字节并返回,如果已经到达输入流的末尾,则返回-1。

(2)int read(byte[] b):从输入流中读取最多b.length个字节的数据,并将其存储在缓冲区b中,返回读取的字节数。

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

2. OutputStream的常用方法:

(1)void write(int b):将指定的字节写入输出流。

(2)void write(byte[] b):将b.length个字节从指定的字节数组写入此输出流。

(3)void flush():刷新输出流并强制任何缓冲的字节被写出。

二、字符流(Reader和Writer)

Java提供了两个基类来表示字符流:Reader和Writer。Reader类用于从输入流读取字符,而Writer类用于将字符写入输出流。

1. Reader的常用方法:

(1)int read():读取一个字符并返回,如果已经到达输入流的末尾,则返回-1。

(2)int read(char[] cbuf):从输入流中读取最多cbuf.length个字符的数据,并将其存储在缓冲区cbuf中,返回读取的字符数。

(3)int ready():返回可以从输入流中读取的字符数。

2. Writer的常用方法:

(1)void write(int c):将指定的字符写入输出流。

(2)void write(char[] cbuf):将cbuf.length个字符从指定的字符数组写入此输出流。

(3)void flush():刷新输出流并强制任何缓冲的字符被写出。

三、缓冲流(BufferedReader和BufferedWriter)

Java提供了两个缓冲流类:BufferedReader和BufferedWriter。它们都是基于字符流和字节流的缓冲区实现的。

1. BufferedReader的常用方法:

(1)String readLine():读取一个文本行并返回。

(2)int read(char[] cbuf, int off, int len):从输入流中读取最多len个字符,存储到缓冲区cbuf中,并从off开始。

(3)void mark(int readAheadLimit):标记输入流的当前位置。

2. BufferedWriter的常用方法:

(1)void newLine():写入一个行分隔符。

(2)void write(String s, int off, int len):从指定的偏移量off开始,只写入len个字符。

(3)void flush():刷新输出流并强制任何缓冲的字符被写出。

四、对象流(ObjectInputStream和ObjectOutputStream)

Java提供了两个对象流类:ObjectInputStream和ObjectOutputStream。它们能够方便地序列化Java对象,以进行网络传输或永久存储。

1. ObjectInputStream的常用方法:

(1)Object readObject():从输入流中读取一个对象并返回。

(2)void close():关闭对象输入流。

(3)void defaultReadObject():从流中读取默认的字段值,并将它们分配给该对象相应的字段。

2. ObjectOutputStream的常用方法:

(1)void writeObject(Object obj):将一个对象写入输出流中。

(2)void flush():刷新输出流并强制任何缓冲的字符被写出。

(3)void reset():将该输出流的状态重置为初始状态。

总结

本文介绍了Java中常用的IO函数及其常用方法。这些函数和方法可以帮助我们进行输入输出流的操作,从而方便地读取和写入数据。同时,根据具体需求,我们可以选择使用字节流、字符流、缓冲流和对象流等不同类型的流。