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

了解Java中IO操作相关函数

发布时间:2023-06-25 17:13:48

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操作是处理文件和其他输入输出设备的重要组成部分。掌握这些函数可让我们更好地处理文件,提高程序的效率和可靠性。