Java io流详细讲解
时间: 2023-09-08 10:12:28 浏览: 50
Java中的IO流分为输入流和输出流,其中输入流用于读取数据,输出流用于写入数据。我们可以通过使用Java IO流来读取或写入文件、网络通信、内存缓冲区等。下面分别对Java IO流中的输入流和输出流进行详细讲解。
1. Java输入流
Java中的输入流用于读取数据,分为字节输入流和字符输入流两种。
字节输入流:InputStream
InputStream是Java中所有字节输入流的父类,主要提供了读取字节的方法,包括:
- int read():读取一个字节的数据并返回,如果已经到达输入流的末尾,则返回-1;
- int read(byte[] b):读取b.length个字节的数据,并存储到数组b中,返回实际读取的字节数,如果已经到达输入流的末尾,则返回-1;
- int read(byte[] b, int off, int len):读取len个字节的数据,并存储到数组b中从off位置开始的地方,返回实际读取的字节数,如果已经到达输入流的末尾,则返回-1。
字符输入流:Reader
Reader是Java中所有字符输入流的父类,主要提供了读取字符的方法,包括:
- int read():读取一个字符并返回,如果已经到达输入流的末尾,则返回-1;
- int read(char[] c):读取c.length个字符的数据,并存储到数组c中,返回实际读取的字符数,如果已经到达输入流的末尾,则返回-1;
- int read(char[] c, int off, int len):读取len个字符的数据,并存储到数组c中从off位置开始的地方,返回实际读取的字符数,如果已经到达输入流的末尾,则返回-1。
2. Java输出流
Java中的输出流用于写入数据,分为字节输出流和字符输出流两种。
字节输出流:OutputStream
OutputStream是Java中所有字节输出流的父类,主要提供了写入字节的方法,包括:
- void write(int b):写入一个字节的数据;
- void write(byte[] b):写入数组b中所有的字节数据;
- void write(byte[] b, int off, int len):写入数组b中从off位置开始的len个字节数据;
- void flush():刷新该流的缓冲区,确保所有缓存的字节都被写出到目标设备中;
- void close():关闭输出流。
字符输出流:Writer
Writer是Java中所有字符输出流的父类,主要提供了写入字符的方法,包括:
- void write(int c):写入一个字符;
- void write(char[] c):写入数组c中所有的字符数据;
- void write(char[] c, int off, int len):写入数组c中从off位置开始的len个字符数据;
- void flush():刷新该流的缓冲区,确保所有缓存的字符都被写出到目标设备中;
- void close():关闭输出流。
以上就是Java IO流的详细讲解,希望对你有所帮助!