Javaはどれだけ(72)ファイルのランダムな読み書きを知っています

4048 ワード

Java.ioパッケージには、ランダムファイルの作成とアクセスのためのRandomAccessFileクラスが用意されています.このクラスを使用すると、ファイルの任意の場所にジャンプしてデータを読み書きできます.プログラムは、ファイルの他のデータを破壊することなく、ランダムファイルにデータを挿入できます.また、プログラムは、ファイル全体を書き換えることなく、以前に格納されたデータを更新または削除することもできます.RandomAccessFileクラスはObjectクラスの直接サブクラスであり、表10-11に示すように、RandomAccessFileのオブジェクトを作成するための2つの主要な構造方法を含む.
表10-11 RandomAccessFileクラスの構築方法
構築方法
機能の説明
public RandomAccessFile(String name, String mode)
ランダムファイルストリームオブジェクトに対応するファイル名を指定し、modeでファイルへのアクセスモードを表します.
public RandomAccessFile (File file, String mode)
fileでランダムファイルストリームオブジェクトに対応するファイル名を指定し、modeでアクセスモードを表します.
modeは、作成されたランダムな読み書きファイルの動作状態を表し、その値は以下のとおりです.
  • r:読み取り専用でファイルを開くことを示します.
  • rw:読み書きでファイルを開くことを示し、このモードで1つのオブジェクトだけで同時に読み書き操作を実現できます.

  • 表10−12に、RandowAccessFileクラスでよく使用される方法および説明を示す.
    表10-12 RandowAccessFileの一般的な方法
    方法
    機能の説明
    long length()
    ファイル長を返す
    void seek(long pos)
    ファイル位置インジケータを移動し、posはファイルの先頭からのオフセットバイト数を指定します.
    int skipBytes(int n)
    nバイトをスキップし、実際にスキップしたバイト数を返す
    int read()
    ファイルから1バイトを読み出し、バイトの高さ24ビットは0で、ファイルの最後に遭遇したら-1を返します.
    final byte readByte()
    ファイルからシンボル付きバイト値を読み込む
    final char readChar()
    ファイルからUnicode文字を読み込む
    final void writeChar(inte c)
    1文字、2バイトの書き込み
     
     1 【  10-12】      ,          。
    
     2 //********** ep10_12.java **********
    
     3 import java.io.*;
    
     4 class ep10_12{
    
     5     public static void main(String args[]) throws IOException{
    
     6         try{
    
     7             BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
    
     8             String s=in.readLine();
    
     9             RandomAccessFile myFile=new RandomAccessFile("ep10_12.log","rw");
    
    10             myFile.seek(myFile.length());  //       
    
    11             myFile.writeBytes(s+"
    "); // 12 myFile.close(); 13 } 14 catch(IOException e){} 15 } 16 }

    プログラム実行後にディレクトリにep 10_を作成12.logのファイルは、実行時に入力する内容がファイルの内容の最後に追加されます.
    シリーズ記事:
    Javaはどのくらい知っていますか(上)
    Javaはどのくらい知っていますか(中)