ユーザ登録を達成するためのRandomAccessFile()関数で、追加、クエリー、更新

パッケージseday03.raf;
インポートにjava.io.IOException;
輸入java.io.RandomAccessFile;
輸入java.util.Arrays。
インポートjava.util.Scanner;

/ **
* @author xingsir
*登録ユーザー機能は、
*プログラムが起動した後、ユーザーは、ユーザー名、パスワード、年齢入り
のファイルtext2.txtに*と書き込み情報を。どこのユーザー名、パスワード、文字列、年齢int値として。
*
*フォーマット:
各レコード100は、固定バイト占有*
ユーザー名とパスワードは、各文字列の32バイトを占めました*。年齢がintであり、4バイトに固定されています。
*
* /
パブリッククラスRegDemo {

静的な無効メイン国民は(文字列[] args)をIOExceptionがスロー{
//コンソール入力
、スキャナスキャナスキャナの新新=(System.in)
;:System.out.printlnは(「あなたの名前を入力してください」)
文字列名= scanner.nextLine ();
System.out.printlnは( "あなたのパスワードを入力してください:");
文字列のパスワード= scanner.nextLine();
System.out.printlnはは( "年齢を入力してください:");
int型=年齢Integer.parseInt(scanner.nextLine ());

AのRandomAccessFileのRaf AのRandomAccessFile新しい新=( "RW") "test2.txtという名前である";
//ファイルの末尾へのポインタ
raf.seek(raf.length());
//ユーザ名書き込み
バイト[]データ= username.getBytes( "UTF-8");
データ= Arrays.copyOf(データ、32); //半分と32バイト
raf.write(データ);
//書き込みパスワード
データ= password.getBytes(「UTF-8 「);
データ=配列,.copyOf(データ、32); //半分と32バイト
raf.write(データ);

//年齢書く
raf.writeInt(年齢);
System.out.printlnは( "登録完全な!");
raf.closeを();

}

}

// ================================================ =====================================

パッケージseday03.raf;

インポートにjava.io.IOException;
輸入java.io.RandomAccessFile;

/ **
* @authorのxingsir
*コンソールtest2.txtという名前のファイルにすべての出力のユーザー情報
* /
publicクラスShowAllUserDemo {

静的ボイドメイン公衆(文字列[]引数)にIOException {スロー
のRandomAccessFileのRafのRandomAccessFile新しい新しい=を( "R&LT" "test2.txtという名前である");
//ユーザ名読み取り
I 0 =(INTのために、I <raf.length() / 100; I ++){
バイト[] =新しい新しいデータバイト[32]; //配列、32定義
//リード
; raf.read(データ)
//変換文字列形式の
文字列名=新しい文字列(データを、 "UTF-8")(トリム );

raf.read(データ)。
文字列のパスワード=新しいString(データ、 "UTF-8")(トリム)。

// int型のフォーマットは、に変換される
int型= raf.readInt年齢();
//出力
するSystem.out.println(ユーザー名+ "" +パスワード+ "" +年齢)。

}
raf.close()。
}

}

// ================================================ ==============================

パッケージseday06。

インポートにjava.io.IOException;
輸入java.io.RandomAccessFile;
輸入java.util.Arrays。
インポートjava.util.Scanner;

/ **
* @authorのxingsirは
*プログラムが起動した後、ユーザー名と新しいパスワードを入力する必要があります。
*その後、ユーザーのパスワードの変更に対応するtest2.txtという名前のファイル。
*入力されたユーザーが存在しない場合は、ユーザープロンプトが表示されません。
* /
パブリッククラスUpdateDemo {

公共の静的な無効メイン(文字列[]引数)はIOExceptionが{スロー

新新しいスキャナスキャナ=スキャナ(System.in);
System.out.printlnは(「あなたのユーザー名を入力してください」);
文字列名= scanner.nextLine();
System.out.printlnは(「新しいパスワードを入力してください」);
文字列= scanner.nextLineパスワード();

のRandomAccessFileのRafのRandomAccessFile新しい新=( "test2.txtという名前である"、 "RW");
falseにブール=アップデート; // falseに初期値
のために(int型I = 0; I <raf.length() / 100; I ++){
raf.seek(I * 100);
//ユーザ名読み取る
バイト[] =新しい新しいデータバイト[32];
raf.read(データ);
文字列名=新しい新しい文字列(データ、「UTF 8 ")トリム;()
//名前決意出力がある場合
){IF(name.equals(ユーザ名)
//パスワードの変更
、raf.seekを(100 + 32 * I)
データ= password.getBytes(" UTF- 8「);
データ= Arrays.copyOf(データ、32);
のRaf。(データ)を書き込みます。
System.out.println( "修正が完了した!");
trueに更新=;
BREAK;
}

}
IF(更新!){
System.out.printlnは( "いいえユーザー");

}

}
}

 

おすすめ

転載: www.cnblogs.com/xingsir/p/12018091.html