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

Java函数如何实现文件读写功能

发布时间:2023-06-02 13:16:55

Java语言提供了各种方法和类实现文件读写操作。文件读写是处理I/O操作的最常见方法之一,Java有以下三种方式实现文件读写功能:

一、使用Java I/O类库

二、使用Java NIO类库

三、使用Apache Commons IO库

一、使用Java I/O类库

Java I/O 类库包括两种类型,一种是字节流(Byte Streams),另一种是字符流(Character Streams)。

字节流:

1. FileOutputStream:写入文件操作。

FileOutputStream out = new FileOutputStream("file.txt");
out.write("hello world".getBytes());
out.close();

2. FileInputStream:读取文件操作。

FileInputStream in = new FileInputStream("file.txt");
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) > 0) {
  System.out.println(new String(buffer, 0, len));
}
in.close();

字符流:

1. FileWriter:写入文件操作。

FileWriter writer = new FileWriter("file.txt");
writer.write("hello world");
writer.close();

2. FileReader:读取文件操作。

FileReader reader = new FileReader("file.txt");
char[] buffer = new char[1024];
int len;
while ((len = reader.read(buffer)) > 0) {
  System.out.println(new String(buffer, 0, len));
}
reader.close();

二、使用Java NIO类库

Java NIO (New I/O) 类库是在JDK 1.4中引入的,它提供了比传统I/O更高效的I/O操作方式。Java NIO中包含了以下几个核心类和接口来实现文件读写操作:

1. Channel:通道,数据通过通道进行读写操作。

2. Buffer:缓冲区,存储数据的地方。

3. Selector:选择器,用于管理多个通道。

FileChannel channel = new FileOutputStream("file.txt").getChannel();
Buffer buffer = ByteBuffer.wrap("hello world".getBytes());
channel.write(buffer);
channel.close();

FileChannel channel = new FileInputStream("file.txt").getChannel();
ByteBuffer buffer = ByteBuffer.allocate(1024);
while (channel.read(buffer) > 0) {
  buffer.flip();
  System.out.println(new String(buffer.array()));
  buffer.clear();
}
channel.close();

三、使用Apache Commons IO库

Apache Commons IO 库是Apache软件基金会开发的一个开源Java类库,提供了各种实用程序,用于简化文件读写操作。这个库的特点是使用简单,操作封装到了文件工具类中,开发人员可以更加关注具体业务逻辑而无须关心一些底层实现。

1. FileUtils.write:写入文件操作。

FileUtils.write(new File("file.txt"), "hello world", "UTF-8");

2. FileUtils.readFileToString:读取文件操作。

String content = FileUtils.readFileToString(new File("file.txt"), "UTF-8");
System.out.println(content);

总结:

Java提供了多种方式实现文件读写操作,可以根据实际业务需求来选择使用哪一种方法。一般而言,如果需要快速地实现文件读写操作,则可以使用Apache Commons IO库。如果需要更高效的I/O操作,可以使用Java NIO。如果需要更丰富的功能和更好地控制文件读写操作,则使用Java I/O类库。