FileChannel 读取本地文件
时间: 2024-05-09 15:14:20 浏览: 172
可以使用 FileChannel 类来读取本地文件。以下是一个简单的示例代码:
```java
import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class FileChannelExample {
public static void main(String[] args) {
try (FileInputStream fileInputStream = new FileInputStream("path/to/file");
FileChannel fileChannel = fileInputStream.getChannel()) {
ByteBuffer buffer = ByteBuffer.allocate(1024);
int bytesRead = fileChannel.read(buffer);
while (bytesRead != -1) {
buffer.flip();
while (buffer.hasRemaining()) {
System.out.print((char) buffer.get());
}
buffer.clear();
bytesRead = fileChannel.read(buffer);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
上述代码使用了 `FileInputStream` 类来打开文件,并使用 `getChannel()` 方法获取了 `FileChannel` 对象。然后,使用 `ByteBuffer` 类来读取文件内容。在读取文件内容时,首先将 `ByteBuffer` 转换为读模式(通过调用 `flip()` 方法),然后使用 `hasRemaining()` 方法检查是否还有剩余的字节可读(如果有,则使用 `get()` 方法读取一个字节)。最后,使用 `clear()` 方法将 `ByteBuffer` 转换为写模式,并重复读取文件内容,直到到达文件的末尾。
阅读全文