了解Java中IO操作相关函数
Java中IO(输入/输出)操作是非常重要的组成部分,主要用于读取和写入文件、网络和其他设备。在本文中,我将会深入介绍Java中IO操作相关函数。
Java中的IO操作分为两类:字节流和字符流。字节流分为InputStream和OutputStream,而字符流分为Reader和Writer。
一般来说,在处理二进制文件(如图片、音频、视频等)时使用字节流,而在处理文本文件时使用字符流。Java中提供的IO操作函数可以让我们对文件进行读写、复制和删除等操作。
一、字节流
1. InputStream
InputStream是抽象类,用于读取字节流数据。其常用的方法有:
read():从InputStream读取一个字节,并返回读取的字节。如果已到达文件结尾,则返回-1。
read(byte[] b):从InputStream读取字节到缓冲区b中,并返回读入的字节数量。
close():关闭InputStream流。
2. OutputStream
OutputStream也是一个抽象类,用于写出字节流数据。其主要的方法有:
write(int b):向OutputStream写出一个字节。
write(byte[] b):向OutputStream写出缓冲区中的字节。
close():关闭OutputStream流。
二、字符流
1. Reader
Reader是抽象类,用于读取字符流。常用的方法包括:
read():从Reader读取一个字符,并返回读取的字符(作为int类型返回)。如果已到达文件结尾,则返回-1。
read(char[] c):从Reader读取字符到缓冲区c中,并返回读入的字符数量。
close():关闭Reader流。
2. Writer
Writer也是一个抽象类,用于写出字符流数据。其主要的方法有:
write(int c):写出一个字符到Writer。
write(char[] c):写出一个字符数组到Writer。
close():关闭Writer流。
三、常用类
1. FileInputStream和FileOutputStream
FileInputStream和FileOutputStream是InputStream和OutputStream的实现,用于读写文件。创建这两个流时需要传入要读写的文件路径。
2. FileReader和FileWriter
FileReader和FileWriter是Reader和Writer的实现,用于读写文本文件。创建这两个流时需要传入要读写的文件路径。
3. BufferedReader和BufferedWriter
BufferedReader和BufferedWriter是字符流的缓冲区实现,可以提高读写效率。创建这两个类需要传入一个Reader或Writer对象。
四、使用IO操作处理文件
Java中的IO操作可以用于读写文件、复制和删除等操作。下面是一些使用IO操作处理文件的例子:
1. 读取文件
FileInputStream fstream = new FileInputStream("file.txt");
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String strLine;
while ((strLine = br.readLine()) != null) {
System.out.println(strLine);
}
br.close();
}
catch (Exception e) {
System.err.println("Error: " + e.getMessage());
}
2. 写出文件
FileOutputStream fstream = new FileOutputStream("file.txt");
DataOutputStream out = new DataOutputStream(fstream);
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(out));
bw.write("写出文件内容");
bw.close();
3. 复制文件
FileInputStream in = new FileInputStream("input.txt");
FileOutputStream out = new FileOutputStream("output.txt");
byte[] buf = new byte[1024];
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
in.close();
out.close();
4. 删除文件
File file = new File("file.txt");
if (file.delete()) {
System.out.println(file.getName() + " is deleted!");
} else {
System.out.println("Delete operation is failed.");
}
Java的IO操作是处理文件和其他输入输出设备的重要组成部分。掌握这些函数可让我们更好地处理文件,提高程序的效率和可靠性。
