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 |