본문 바로가기
언어/JAVA

입출력 클래스(File, RandomAccessFile)

by step 1 2021. 5. 23.
반응형

File 클래스

  • 파일 개념을 추상화한 클래스
  • 입출력 기능은 없고, 파일의 이름, 경로, 읽기 전용등의 속성을 알 수 없음
  • 이를 지원하는 여러 메서드들이 제공됨

FileTest.java

package ch65;

import java.io.File;
import java.io.IOException;

public class FileTest {

	public static void main(String[] args) throws IOException {
		
		File file = new File("D:\\eclipse\\workspace\\JAVA-Chapter2\\a.txt");
		file.createNewFile();
		
		System.out.println(file.isFile());
		System.out.println(file.isDirectory());
		System.out.println(file.getName());
		System.out.println(file.getAbsolutePath());
		System.out.println(file.getPath());
		System.out.println(file.canRead());
		System.out.println(file.canWrite());
		
		file.delete();
	}
}

 

RandomAccessFile 클래스

  • 입출력 클래스 중 유일하게 파일에 대한 입력과 출력을 동시에 할 수 있는 클래스
  • 파일 포인터가 있어서 읽고 쓰는 위치의 이동이 가능함
  • 다양한 메서드가 제공됨

RandomAccessFileTest.java

package ch65;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileTest {

	public static void main(String[] args) throws IOException {
		
//		존재하지 않으면 생성, 읽고 쓰기 설정
		RandomAccessFile rf = new RandomAccessFile("random.txt", "rw");
		rf.writeInt(100);
		System.out.println("파일 포인터 위치: " + rf.getFilePointer());
		rf.writeDouble(3.14);
		System.out.println("파일 포인터 위치: " + rf.getFilePointer());
		rf.writeUTF("안녕하세요!");
		System.out.println("파일 포인터 위치: " + rf.getFilePointer());
		
//		맨 앞으로 이동
		rf.seek(0);
		System.out.println("파일 포인터 위치: " + rf.getFilePointer());
		
		int i = rf.readInt();
		double d = rf.readDouble();
		String str = rf.readUTF();
		
		System.out.println("파일 포인터 위치: " + rf.getFilePointer());
		System.out.println(i);
		System.out.println(d);
		System.out.println(str);
	}
}

반응형

'언어 > JAVA' 카테고리의 다른 글

Thread 1  (0) 2021.05.23
데코레이터 패턴  (0) 2021.05.23
DataStream, 직렬화  (0) 2021.05.23
여러가지 보조 스트림 클래스  (0) 2021.05.23
문자단위 입출력 스트림  (0) 2021.05.23