Java_オウRandom Access File類


このブログは子墨のオリジナルです.転載は出典を明記してください.
http://blog.csdn.net/zimo2013/article/details/8888165
IO流プロフィール>> 
1.Random Access File概要
   このクラスはIOシステムの中性子類ではなく、Objectから直接継承されていますが、IOパッケージのメンバーです.読みと書きの機能があるからです.   内部には1つの配列が実装されており、配列の要素をポインタで操作することで、ポインタ位置をget FilePointerで取得することができます.   同時にseekで現在のポインタの位置を設定できます.skyBytes()はnバイトをスキップします.バックできません.前に進むしかありません.
2.コンストラクタ
   RandomAccess File(File file,String mode)は、Fileパラメータで指定されており、modeにはrとrwが一般的です.     RandomAccess File(String name,String mode)        モードが読み取り専用のrであれば、ファイルを作成せずに既存のファイルを読み込みます.このファイルが存在しないと異常が発生します.      モードならrw.操作するファイルが存在しません.自動的に作成されます.保存すると上書きされません.
3.一般関数
   long get FilePointer()は、このファイルの現在のオフセット量を返します.     int read(byte[]b)     String readline()     void seek(long pos)は、このファイルの先頭で測定したファイルポインタのオフセット量を設定し、この位置で次の読み込みまたは書き込みが発生します.(前に進むと後ろに下がる)     int skyBytes(int n)入力されたnバイトをスキップしてスキップされたバイトを破棄するように試みる.(前に進むしかない)   void write(byte[]b)はb.lengthバイトを指定byte配列からこのファイルに書き込み、現在のファイルポインタから開始します. 
      void writeInt(int v)
4.コード実現
/*
RandomAccessFile
Strawberry2013-5-5

*/
import java.io.*;

class RandomAccessFileDemo
{
	public static void main(String[] args) throws Exception
	{
		
		write();
		read();
		
	}
	public static void write() throws Exception
	{
		RandomAccessFile raf = new RandomAccessFile("aa.txt", "rw");
		 raf.write("as".getBytes());
		 raf.write(2122);//       ,     ,     raf.writeInt(2222);
		 //raf.writeInt(2222);
		 raf.seek(8);//       ,         
		 raf.skipBytes(8);//       n           ,     !
		 raf.write(97);
	}
	public static void read() throws Exception
	{
		RandomAccessFile raf = new RandomAccessFile("aa.txt", "rw");
		byte[] bt = new byte[2];
		int num = -1;
		while((num=raf.read(bt)) != -1)
		{
			System.out.println(new String(bt, 0, num));
		}
	}

}