Java中的IO类用于处理输入输出操作。输入操作可以从文件、网络连接、标准输入等多种来源获取数据,输出操作可以将数据输出到文件、网络连接、标准输出等多种目的地。下面介绍几个常用的Java IO类:
InputStream/OutputStream:这是Java IO类中最基本的抽象类,用于读取或写入字节数据。所有的输入流和输出流都继承自这个类。
FileInputStream/FileOutputStream:这两个类用于读取或写入文件中的数据。FileInputStream将文件的内容作为输入流返回,而FileOutputStream将输出流的数据写入到文件中。
BufferedInputStream/BufferedOutputStream:这两个类对输入输出流进行了缓存,可以提高读写效率。
Reader/Writer:这是Java IO类中用于读取或写入字符数据的抽象类。所有的字符输入流和字符输出流都继承自这个类。
FileReader/FileWriter:这两个类用于读取或写入文件中的字符数据。FileReader将文件的内容作为字符输入流返回,而FileWriter将字符输出流的数据写入到文件中。
BufferedReader/BufferedWriter:这两个类对字符输入输出流进行了缓存,可以提高读写效率。
ByteArrayInputStream/ByteArrayOutputStream:这两个类用于读取或写入字节数组中的数据。
CharArrayReader/CharArrayWriter:这两个类用于读取或写入字符数组中的数据。
DataInputStream/DataOutputStream:这两个类用于读取或写入基本数据类型的数据。
ObjectInputStream/ObjectOutputStream:这两个类用于读取或写入Java对象。
以上是一些常用的Java IO类,它们可以满足我们大多数的输入输出需求。在使用这些类时需要注意,要在使用完毕后关闭流以释放资源
下面是Java IO类的一个使用样例,示范了如何使用FileInputStream和FileOutputStream类读取和写入文件:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class IOExample {
public static void main(String[] args) {
// 读取文件内容并输出到控制台
try (FileInputStream inputStream = new FileInputStream("input.txt")) {
int data;
while ((data = inputStream.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
e.printStackTrace();
}
// 写入字符串到文件中
try (FileOutputStream outputStream = new FileOutputStream("output.txt")) {
String content = "Hello, world!";
byte[] data = content.getBytes();
outputStream.write(data);
} catch (IOException e) {
e.printStackTrace();
}
}
}
该程序首先使用FileInputStream读取了一个名为"input.txt"的文件,并将文件中的内容输出到控制台。接着,使用FileOutputStream将字符串"Hello, world!"写入到一个名为"output.txt"的文件中。这里使用了Java 7引入的"try-with-resources"语法糖,这样可以确保在程序退出时流会被正确关闭,从而避免资源泄露的问题。