프로그래밍 정리/자바

RandomAccessFile

주누다 2013. 5. 31. 23:08
반응형

RandomAccessFile

- 파일에 대한 임의의 접근을 가능하게 함.

- r : 읽기만 가능

- w : 쓰기만 가능



import java.io.RandomAccessFile;



public class RandomAccessFileTest {

static String s = "ILoveJava";

static String q = "Javastudy!";


public static void main(String[] args) throws Exception {

RandomAccessFile rf = new RandomAccessFile("C:/Users/sharkmino/Desktop/Music_2.txt", "rw");

String str = null;

rf.writeChars(s);

rf.close();

rf = new RandomAccessFile("C:/Users/sharkmino/Desktop/Music_2.txt", "rw");

rf.seek(10);

rf.writeChars(q);

rf.close();

rf = new RandomAccessFile("C:/Users/sharkmino/Desktop/Music_2.txt", "r");

while( (str =  rf.readLine() ) != null){

System.out.println("글내용은 : " + new String(str.getBytes("8859_1"), "EUC-KR") );

}

rf.close();

}

}




=============================================================================================================


RandomAccessFile() 입니다.

InputStream이나 OutputStream의 서브 클래스는 아니지만 파일의 읽기, 쓰기를 위한 독립적인 메소드를 제공합니다.

아래는 간단한 예제입니다.

 

package filetransTest;  

  

import java.io.IOException;  

import java.io.RandomAccessFile;  

  

public class App   

{  

    public static void main( String[] args )  

    {  

        RandomAccessFile rf;  

        long pos = 0;  

          

        try{  

            rf = new RandomAccessFile("acct20101125.log", "r");  

            pos = readLines(rf);  

            rf.close();  

              

            System.out.println("\nread 1-10\n\n");  

              

            rf = new RandomAccessFile("acct20101125.log", "r");  

            rf.seek(pos);  

            pos = readLines(rf);  

        }catch(Exception e)  

        {  

            System.out.println(e.toString());  

        }  

          

    }  

  

    private static long readLines(RandomAccessFile rf) throws IOException {  

        long recnum = 1;  

        String temp;  

        while((temp = rf.readLine()) != null)  

        {  

            System.out.println("Line " + recnum + " : " + temp);  

            if(((++recnum)%10) == 0)  

            {  

                break;  

            }  

        }  

        return rf.getFilePointer();  

    }  

      

}  



내용은 간단합니다. 텍스트형식의 파일을 읽고 10줄까지 화면에 뿌린후 읽은곳 까지의 포인터위치를 저장후

파일을 닫고 다시 연후 좀전에 저장한 포인터 위치부터 읽어서 화면에 뿌리는 형식입니다.

[출처] RandomAccessFile : java 자바 랜덤파일읽기(seek)|작성자 koalagon


반응형

'프로그래밍 정리 > 자바' 카테고리의 다른 글

DataInputStream과 DataOutputStream  (0) 2013.06.01
StreamTokenizer  (0) 2013.06.01
InputStream in.read() -1  (0) 2013.05.31
InputStream과 OutputStream  (0) 2013.05.31
스트림(Stream)의 종류  (0) 2013.05.31