FileObject — 도구가 다루는 파일의 추상화 인터페이스

FileObject — 도구가 다루는 파일의 추상화 인터페이스

컴파일러 같은 도구가 다루는 '파일'은 실제 파일시스템의 파일만을 뜻하지 않아요. 메모리, 데이터베이스 등 다양한 데이터 소스를 파일처럼 취급하고 싶을 때가 있죠. FileObject는 그런 파일의 추상화를 제공하는 인터페이스예요.

일반 파일뿐 아니라 메모리 캐시, 데이터베이스 내 데이터까지 파일 객체로 표현할 수 있어요.

출처: Java API Reference

본문

FileObject는 인터페이스로, 파일 객체가 가져야 할 기본 동작을 정의해요.

public interface FileObject

주요 메서드는 다음과 같아요.

URI toUri()
String getName()
InputStream openInputStream() throws IOException
OutputStream openOutputStream() throws IOException
Reader openReader(boolean ignoreEncodingErrors) throws IOException
Writer openWriter() throws IOException
long getLastModified()
boolean delete()
CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException
  • toUri() / getName() — 파일 객체의 URI와 이름을 돌려줘요.
  • openInputStream / openOutputStream — 데이터를 읽거나 쓸 스트림을 열어요.
  • openReader / openWriter — 문자로 읽거나 쓸 리더·라이터를 열어요.
  • getCharContent — 파일 내용을 문자 시퀀스로 돌려줘요.
  • getLastModified / delete — 마지막 수정 시각과 삭제 동작을 제공해요.

유의할 점이 두 가지 있어요. 첫째, 이 인터페이스의 모든 메서드는 보안 예외가 발생하면 SecurityException을 던질 수 있어요. 둘째, 명시적으로 허용되지 않는 한 모든 메서드는 null 인자를 받으면 NullPointerException을 던질 수 있어요.

이 인터페이스는 javax.tools 패키지에 속하며, JavaFileObject와 함께 도구들이 파일을 다루는 기반이 돼요.

더 알아보기 (Learn more)