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バイトの書き込み
プログラム実行後にディレクトリにep 10_を作成12.logのファイルは、実行時に入力する内容がファイルの内容の最後に追加されます.
シリーズ記事:
Javaはどのくらい知っていますか(上)
Javaはどのくらい知っていますか(中)
表10-11 RandomAccessFileクラスの構築方法
構築方法
機能の説明
public RandomAccessFile(String name, String mode)
ランダムファイルストリームオブジェクトに対応するファイル名を指定し、modeでファイルへのアクセスモードを表します.
public RandomAccessFile (File file, String mode)
fileでランダムファイルストリームオブジェクトに対応するファイル名を指定し、modeでアクセスモードを表します.
modeは、作成されたランダムな読み書きファイルの動作状態を表し、その値は以下のとおりです.
表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はどのくらい知っていますか(中)