자바 IO 의 RandomAccessFile

7015 단어 io자바
자바 IO 의 RandomAccessFile
RandomAccessFile 류 의 주요 기능 은 무 작위 읽 기 작업 을 완성 하 는 것 이 며, 그 자체 도 파일 에 내용 을 직접 저장 할 수 있 습 니 다.
무 작위 읽 기 를 실현 하려 면 데 이 터 를 저장 할 때 데이터 길이 의 일치 성 을 저장 해 야 합 니 다. 그렇지 않 으 면 기능 을 수행 할 수 없습니다.
RandomAccessFile 의 구조 방법
public RandomAccessFile(File file, String mode) throws FileNotFoundException
File 클래스 의 인 스 턴 스 를 받 고 작업 모드 를 설정 해 야 합 니 다.
읽 기 모드: r
쓰기 모드: w
읽 기와 쓰기 모드: rw
가장 중요 한 것 은 읽 기와 쓰기 모드 입 니 다. 작 동 하 는 파일 이 존재 하지 않 으 면 사용자 가 자동 으로 만 들 수 있 습 니 다.
RandomAccessFile 을 사용 하여 기록 작업:
   
   
   
   
  1. import java.io.File; 
  2. import java.io.RandomAccessFile; 
  3. public class RandomAccessFileDemo { 
  4.     public static void main(String[] args) throws Exception { 
  5.         File file = new File("D:" + File.separator + "singsongs.txt"); 
  6.         RandomAccessFile raf = null
  7.         raf = new RandomAccessFile(file, "rw"); 
  8.         //   
  9.         String name = "singsong"
  10.         int age = 23
  11.         raf.writeBytes(name);//   
  12.         raf.writeInt(age);//   
  13.         //   
  14.         name = "lishi   "
  15.         age = 23
  16.         raf.writeBytes(name);//   
  17.         raf.writeInt(age);//   
  18.         raf.close(); 
  19.     } 

RandomAccessFile 읽 기 동작:
RandomAccessFile 작업 을 할 때 읽 는 방법 은 모두 DataInput 인터페이스 에서 이 루어 진 것 으로 일련의 readXxx () 방법 이 있어 다양한 유형의 데 이 터 를 읽 을 수 있 습 니 다.
그러나 RandomAccessFile 에 서 는 무 작위 로 읽 을 수 있 기 때문에 일련의 제어 방법 이 있 습 니 다.
읽 기 지점 으로 돌아 가기: public void seek (long pos) throws IOException
몇 개의 바이트 건 너 뛰 기: Public int skipBytes (int n) throws IOException
다음 읽 기 동작 을 진행 합 니 다:
   
   
   
   
  1. import java.io.File; 
  2. import java.io.RandomAccessFile; 
  3. public class ReadRandomAccessFileDemo { 
  4.     public static void main(String[] args) throws Exception { 
  5.         File file = new File("D:" + File.separator + "singsongs.txt"); 
  6.         RandomAccessFile raf = new RandomAccessFile(file, "r"); 
  7.         byte b[] = null
  8.         String name = null
  9.         int age = 0
  10.         b = new byte[8]; 
  11.         raf.skipBytes(12); 
  12.         for (int i = 0; i 8; i++) { 
  13.             b[i] = raf.readByte(); 
  14.         } 
  15.         name = new String(b); 
  16.         age = raf.readInt();//   
  17.         System.out.println(" :" + name); 
  18.         System.out.println(" :" + age); 
  19.         raf.close(); 
  20.     } 

실행 결과:
   
   
   
   
  1. :lishi    
  2. 23 

좋은 웹페이지 즐겨찾기