Java函数如何实现文件读写功能
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类库。
