Java NIOとは何か、そしてどのように使用するか

Java NIO (New IO) は、Java 1.4 で導入された従来の Java IO を置き換えるための新しい入出力 API です。NIO は、より効率的で柔軟な IO 処理方法を提供し、非ブロッキング IO モデルをサポートしています。

Java NIO の中核となる概念はチャネル(Channel)とバッファ(Buffer)です。チャネルはファイルやソケットなどの実体へのオープン接続を表し、チャネルを通じて読み書き操作を行うことができます。バッファはデータの格納場所であり、チャネルとアプリケーション間でデータを転送します。

Java NIO を使ったファイル読み込みの簡易的な例を以下に示す。

import java.io.IOException;

import java.nio.ByteBuffer;

import java.nio.channels.FileChannel;

import java.nio.file.Path;

import java.nio.file.Paths;

java.nio.file.StandardOpenOption をインポートします。

public class FileReadExample {

public static void main(String[] args)

Path filePath = Paths.get(“ファイルへのパス”);

ネイティブな日本語で言い換えてください。オプションは 1 つだけで構いません。try (FileChannel fileChannel = FileChannel.open(filePath, StandardOpenOption.READ)) {

ByteBuffer buffer = ByteBuffer.allocate(1024);

int bytesRead = fileChannel.read(buffer);

while (bytesRead != -1) {

バッファを反転します。

バッファーに残っているものがある間は {

System.out.print((char)buffer.get());

彼は、幼い頃から絵を描くことを愛していた。

バッファを消去する。

bytesRead = fileChannel.read(buffer);

直接日本語で言い換えてください。1つのオプションで十分です。

catch (IOException e) {}

e.printStackTrace();

時間はかかるかもしれませんが、私たちはそれをやり遂げます。

食べ過ぎるとお腹を壊します。

私は生まれつきの日本人で、日本語ネイティブです。

上の例では、まずPathクラスで読み込むファイルのパスを取得し、FileChannel.openメソッドで読み込み用のファイルチャネルを開き、StandardOpenOption.READオプションを使って読み込みモードを指定しています。次に、ByteBufferオブジェクトをバッファとして1024バイトのサイズで作成します。そして、チャネルからバッファにデータを順次読み込む処理を、読み込んだバイト数が-1(ファイルの終端)になるまで繰り返しています。ループの中では、バッファをbuffer.flip()メソッドで読み込みモードに切り替え、buffer.hasRemaining()メソッドでバッファに未読み込みのデータがあるかどうかを調べ、最後にbuffer.get()メソッドでデータを1バイトずつ読み込んで出力しています。最後にbuffer.clear()メソッドでバッファをクリアし、次のデータの読み込みに備えています。

ファイル操作以外にも、Java NIO はネットワーク通信やメモリマップ型ファイルなど、より多くの機能に対応しています。Java NIO を使用することで、IO 操作の効率性と柔軟性を向上させることができます。

bannerAds