通常、ファイルの読み取りまたは書き込みを行う場合、ファイルの先頭からのみデータの読み取りまたは書き込みが可能です。ランダムな場所から読み書きすることはできません。
Java の java.io.RandomAccessFile クラスを使用すると、ランダム アクセス ファイルへのデータの読み取り/書き込みが可能になります。
これは、インデックスまたはカーソル (ファイル ポインターと呼ばれる) を備えた大きなバイト配列のようなもので、getFilePointer() メソッドと Seek() を使用してそのポインターの位置を取得できます。メソッドは場所を設定します。
このクラスは、ファイルを読み書きするためのさまざまなメソッドを提供します。このクラスの readLine() メソッドは、ファイルから次の行を読み取り、それを文字列として返します。
このクラスの readLine() メソッドを使用してファイルからデータを読み取る手順は次のとおりです。
必要なFile クラスをインスタンス化するファイルへのパス。
StringBuffer クラスをインスタンス化します。
上記で作成した File オブジェクトとアクセス モード (r: 読み取り、rw: 読み取り/書き込みなど) を表す文字列を渡して、RandomAccessFile クラスをインスタンス化します。
ファイルの位置が長さより小さい場合、ファイルを反復処理します (length() メソッド)。
上で作成した StringBuffer オブジェクトに各行を追加します。
import java.io.File; import java.io.IOException; import java.io.RandomAccessFile; public class RandomAccessFileExample { public static void main(String args[]) throws IOException { String filePath = "D://input.txt"; //Instantiating the File class File file = new File(filePath); //Instantiating the StringBuffer StringBuffer buffer = new StringBuffer(); //instantiating the RandomAccessFile RandomAccessFile raFile = new RandomAccessFile(file, "rw"); //Reading each line using the readLine() method while(raFile.getFilePointer() < raFile.length()) { buffer.append(raFile.readLine()+System.lineSeparator()); } String contents = buffer.toString(); System.out.println("Contents of the file: \n"+contents); } }
Contents of the file: Tutorials Point originated from the idea that there exists a class of readers who respond better to online content and prefer to learn new skills. Our content and resources are freely available and we prefer to keep it that way to encourage our readers acquire as many skills as they would like to. We don’t force our readers to sign up with us or submit their details either. Enjoy the free content
以上がJavaでRandomAccessFileを使用して.txtファイルを読み取る方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。