Java中如何使用IO函数进行文件读写操作
在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函数进行文件读写操作的示例。在实际使用中,根据需要选择适合的类和方法即可。
