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

Java中如何使用IO函数进行文件读写操作

发布时间:2023-05-20 18:26:21

在Java中,IO函数可以用来进行文件读写操作。IO这个词来自于Input/Output,即输入/输出,用来描述从程序到外部世界(如文件、网络连接等)的数据传输。

Java的IO函数是在java.io包中提供的。该包包含了一组用于处理输入输出流(也称为I/O流)的类和接口。输入输出流是用于将数据传输到文件或从文件读取数据。Java API中的流表示面向字节或面向字符的数据流。

接下来,我们将讨论Java中的几种I/O流及其用法。

1. 文件输入流(FileInputStream)和文件输出流(FileOutputStream)

文件输入流对象用于从文件进行读取数据,而文件输出流对象用于向文件中写入数据。这两个类的构造函数都需要指定一个文件路径参数,以便创建一个与文件对应的输入/输出流对象。

下面是使用文件输入输出流进行文件读写操作的示例:

// 创建文件输出流对象

String filePath = "D:\\test.txt";

FileOutputStream fileOutputStream = new FileOutputStream(filePath);

// 写入数据

String data = "这是写入的数据";

fileOutputStream.write(data.getBytes("UTF-8"));

// 关闭流

fileOutputStream.close();

// 创建文件输入流对象

FileInputStream fileInputStream = new FileInputStream(filePath);

// 读取数据

byte[] buffer = new byte[1024];

int length = fileInputStream.read(buffer);

// 输出读取的数据

System.out.println(new String(buffer, 0, length, "UTF-8"));

// 关闭流

fileInputStream.close();

2. 缓冲输入流(BufferedReader)和缓冲输出流(BufferedWriter)

缓冲输入流(BufferedReader)和缓冲输出流(BufferedWriter)是一种装饰器模式,用于提高读写速度。它们包装了一个输入/输出流,并提供了缓冲区,可以收集更多的数据,以减少程序与硬盘的直接交互次数,从而提高了性能。除了提供缓存,使用缓冲输入流/输出流的优点是简化了输入/输出代码,因为它们提供了一些有用的方法。

下面是使用缓冲输入输出流进行文件读写操作的示例:

// 创建缓冲输出流对象

String filePath = "D:\\test.txt";

FileOutputStream fileOutputStream = new FileOutputStream(filePath);

BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream));

// 写入数据

String data = "这是写入的数据";

bufferedWriter.write(data);

bufferedWriter.newLine(); // 添加换行符

// 关闭流

bufferedWriter.close();

// 创建缓冲输入流对象

FileInputStream fileInputStream = new FileInputStream(filePath);

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream));

// 读取数据

String line;

while ((line = bufferedReader.readLine()) != null) {

  System.out.println(line);

}

// 关闭流

bufferedReader.close();

3. 字符输入流(InputStreamReader)和字符输出流(OutputStreamWriter)

字符输入流(InputStreamReader)和字符输出流(OutputStreamWriter)是一种InputSteam和OutputStream的装饰者,用于转化字节流到字符流。这两个类还提供了一些方法可以在字符和字节之间进行转换。

下面是使用字符输入输出流进行文件读写操作的示例:

// 创建字符输出流对象

String filePath = "D:\\test.txt";

FileOutputStream fileOutputStream = new FileOutputStream(filePath);

OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "UTF-8");

// 写入数据

String data = "这是写入的数据";

outputStreamWriter.write(data);

// 关闭流

outputStreamWriter.close();

// 创建字符输入流对象

FileInputStream fileInputStream = new FileInputStream(filePath);

InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream, "UTF-8");

// 读取数据

char[] buffer = new char[1024];

int length = inputStreamReader.read(buffer);

// 输出读取的数据

System.out.println(new String(buffer, 0, length));

// 关闭流

inputStreamReader.close();

以上是几种Java中使用IO函数进行文件读写操作的示例。在实际使用中,根据需要选择适合的类和方法即可。