Java中的IO函数:如何进行输入输出流操作
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函数及其常用方法。这些函数和方法可以帮助我们进行输入输出流的操作,从而方便地读取和写入数据。同时,根据具体需求,我们可以选择使用字节流、字符流、缓冲流和对象流等不同类型的流。
