|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
public interface JavaFileManager
Java™ 프로그램 언어의 원시 파일이나 클래스 파일을 조작하는 툴전용의 파일 관리자-입니다. 이 문맥에서는, 「파일」이라고 하는 말로, 일반적으로 파일과 그 외의 데이터 소스를 추상적으로 나타냅니다.
파일 관리자-로 새로운 JavaFileObject 를 구축할 때는, 그것들을 어디에 작성하는지를 지정할 필요가 있습니다. 예를 들어, 파일 관리자-를 사용해 파일 시스템상의 일반적으로 파일을 관리하는 경우는, 현재의 디렉토리 (작업 디렉토리)를, 파일의 작성이나 검색을 실시하는 디폴트의 장소로서 사용하는 것이 일반적입니다. 파일 관리자-에는, 파일의 작성 장소를 나타내는 힌트가 다수 제공될 가능성이 있습니다. 이러한 힌트를 무시하도록(듯이), 파일 관리자-를 설정할 수도 있습니다.
이 인터페이스에 포함되는 일부의 메소드는, 클래스명을 사용합니다. 이러한 클래스명은, 「Java 가상 머신 스펙」으로 정의되고 있는 내부 형식에서, 완전 지정의 클래스명 및 인터페이스명으로서 지정할 필요가 있습니다. 편의상, 「.」와「/」은 교환 가능합니다. 내부 형식의 정의에 대해서는,「Java 가상 머신 스펙」의 제 4 장을 참조해 주세요.
해설: 이 경우, 「java/lang.package-info」, 「java/lang/package-info」, 「java.lang.package-info」의 3 종류의 이름이 모두 유효해, 등가이게 됩니다. 「Java 언어 스펙 (JLS)」의 섹션 13.1 「The Form of a Binary」에 정의된 바이너리명과 비교해 주세요.
이름의 대문자와 소문자를 올바르게 구별할 필요가 있습니다. 모든 이름의 대문자와 소문자가 구별됩니다. 예를 들어, 파일명의 대문자와 소문자의 구별은 실시하지 않지만, 그 차이를 인식하는 파일 시스템이 있다고 합니다. 이 경우,File.getCanonicalFile()
또는 같은 수단을 사용해, 파일 객체 (파일을 나타낸다)의 대문자와 소문자의 구별을 보관 유지하도록(듯이) 합니다. 시스템이 대문자와 소문자의 구별을 인식하지 않는 경우는, 그 외의 수단으로, 파일 객체의 대문자와 소문자의 구별을 보관 유지할 필요가 있습니다.
상대명 :이 인터페이스에 포함되는 일부의 메소드는, 상대명을 사용합니다. 상대명은, 일련의 패스 세그먼트(segment) (null 이외, 빈 상태(empty) 이외)를 「/」으로 단락지은 형식의 이름입니다. 「.」또는 「..」(은)는 무효인 패스 세그먼트(segment)입니다. 유효한 상대명은,RFC 3986 의 섹션 3.3 에 정의되고 있는 「path-rootless」의 규칙에 준거하고 있을 필요가 있습니다. 비공식에는, 다음의 조건이 true 가 되도록(듯이) 합니다.
URI. create (relativeName). normalize (). getPath (). equals(relativeName)
이 인터페이스에 포함되는 모든 메소드는, SecurityException 를 throw 할 가능성이 있습니다.
이 인터페이스의 객체는, multi-thread 액세스를 지원하고 있지 않아도 괜찮습니다. 즉, 동기화는 필요 없습니다. 다만, 이 객체에 의해 작성된 복수의 파일 객체에의 병행 액세스는 지원하고 있을 필요가 있습니다.
구현상의 주의: 이 요건이 있기 (위해)때문에,JarOutputStream 에의 출력의 단순한 구현에서는, 구현으로서 불충분합니다. 거기서, JarOutputStream 를 직접 돌려주는 JavaFileObject 를 작성하는 것이 아니라, 컨텐츠를 캐쉬에 포함해, 종료하면(자) JarOutputStream 에 기입하도록(듯이) 합니다.
명시적으로 허가되어 있지 않은 경우에 인수로서 null
가 지정되면(자), 이 인터페이스에 포함되는 모든 메소드는 NullPointerException 를 throw 할 가능성이 있습니다.
JavaFileObject
,
FileObject
상자의 클래스의 개요 | |
---|---|
static interface |
JavaFileManager.Location
파일 객체의 장소의 인터페이스입니다. |
메소드의 개요 | |
---|---|
void |
close ()
이 파일 관리자-에 의해 직접적 또는 간접적으로 열린 자원이 있으면, 그것을 해제합니다. |
void |
flush ()
이 파일 관리자-에 의해 직접적 또는 간접적으로 열린 출력용 자원이 있으면, 그것을 플래시 합니다. |
ClassLoader |
getClassLoader (JavaFileManager.Location location)
지정된 장소로부터 플러그 인을 로드하는 클래스 로더를 가져옵니다. |
FileObject |
getFileForInput (JavaFileManager.Location location,
String packageName,
String relativeName)
지정된 장소에 있는, 특정의 패키지내의 특정의상대명을 나타내는 입력용파일 객체를 가져옵니다. |
FileObject |
getFileForOutput (JavaFileManager.Location location,
String packageName,
String relativeName,
FileObject sibling)
지정된 장소에 있는, 특정의 패키지내의 특정의상대명을 나타내는 출력용파일 객체를 가져옵니다. |
JavaFileObject |
getJavaFileForInput (JavaFileManager.Location location,
String className,
JavaFileObject.Kind kind)
지정된 장소에 있는, 특정의 종류의 특정의 클래스를 나타내는 입력용파일 객체를 가져옵니다. |
JavaFileObject |
getJavaFileForOutput (JavaFileManager.Location location,
String className,
JavaFileObject.Kind kind,
FileObject sibling)
지정된 장소에 있는, 특정의 종류의 특정의 클래스를 나타내는 출력용파일 객체를 가져옵니다. |
boolean |
handleOption (String current,
Iterator <String > remaining)
1 개의 옵션을 처리합니다. |
boolean |
hasLocation (JavaFileManager.Location location)
이 파일 관리자-에 있어 기존의 장소일지 어떨지를 판단합니다. |
String |
inferBinaryName (JavaFileManager.Location location,
JavaFileObject file)
장소에 근거해 파일 객체의 바이너리명을 추측합니다. |
boolean |
isSameFile (FileObject a,
FileObject b)
2 개의 파일 객체를 비교해, 이것들에 의해 나타내지는 부하의 객체가 같은 경우는 true 를 돌려줍니다. |
Iterable <JavaFileObject > |
list (JavaFileManager.Location location,
String packageName,
Set <JavaFileObject.Kind > kinds,
boolean recurse)
지정의 장소의 지정의 기준에 일치하는 모든 파일 객체를 일람표 가리킵니다. |
인터페이스 javax.tools. OptionChecker 로부터 상속된 메소드 |
---|
isSupportedOption |
메소드의 상세 |
---|
ClassLoader getClassLoader(JavaFileManager.Location location)
ANNOTATION_PROCESSOR_PATH
의 클래스 로더를 요구합니다.
location
- 장소
null
SecurityException
- 현재의 시큐리티 문맥으로 클래스 로더를 작성할 수 없는 경우
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우Iterable <JavaFileObject > list(JavaFileManager.Location location, String packageName, Set <JavaFileObject.Kind > kinds, boolean recurse) throws IOException
주:이 파일 관리자-에 있어 미지의 장소가 지정되었을 경우도,null
가 돌려주어질 것은 없습니다. 또, 예외가 생성되는 일도 없습니다.
location
- 장소packageName
- 패키지명kinds
- 이러한 종류의 객체만 돌려주는recurse
- true 의 경우, 「서브 패키지」도 포함된다
IOException
- 입출력 에러가 발생했을 경우, 또는 close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우String inferBinaryName(JavaFileManager.Location location, JavaFileObject file)
location
- 장소file
- 파일 객체
null
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우boolean isSameFile(FileObject a, FileObject b)
a
- 파일 객체b
- 파일 객체
IllegalArgumentException
- 어느 쪽인가의 인수가 다른 파일 관리자-로 작성된 인수이며, 이 파일 관리자-가 외부 파일 객체를 지원하고 있지 않는 경우boolean handleOption(String current, Iterator <String > remaining)
current
가 이 파일 관리자-의 옵션인 경우는,remaining
로부터 그 옵션에 대한 모든 인수를 사용해, true 를 돌려줍니다. 그렇지 않은 경우는 false 를 돌려줍니다.
current
- 현재의 옵션remaining
- 나머지의 옵션
IllegalArgumentException
- 이 파일 관리자-에 대한 이 옵션이 부정하게 사용되었을 경우
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우boolean hasLocation(JavaFileManager.Location location)
location
- 장소
JavaFileObject getJavaFileForInput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind) throws IOException
location
- 장소className
- 클래스의 이름kind
- 파일의 종류. SOURCE
또는 CLASS
null
가 돌려주어질 가능성이 있다
IllegalArgumentException
- 이 파일 관리자-에 있어 미지의 장소가 지정되어 파일 관리자-가 미지의 장소를 지원하고 있지 않는 경우, 또는 파일의 종류가 유효하지 않은 경우
IOException
- 입출력 에러가 발생했을 경우, 또는 close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우JavaFileObject getJavaFileForOutput(JavaFileManager.Location location, String className, JavaFileObject.Kind kind, FileObject sibling) throws IOException
이 파일 관리자-는, 옵션으로서 형제 위젯를 출력처의 힌트로서 사용할 가능성이 있습니다. 이 힌트의 엄밀한 시멘틱스는 지정되지 않습니다. 예를 들어 Sun 의 컴파일러 javac 는, 클래스 파일의 출력 디렉토리가 지정되어 있지 않은 경우, 원시 파일과 같은 디렉토리에 클래스 파일을 배치합니다. 이 처리를 간편화하기 (위해)때문에, javac 는, 이 메소드를 호출할 때, 원시 파일을 형제 위젯로서 지정하는 일이 있습니다.
location
- 장소className
- 클래스의 이름kind
- 파일의 종류. SOURCE
또는 CLASS
sibling
- 배치의 힌트로서 사용되는 파일 객체. null
도 가능
IllegalArgumentException
- 이 파일 관리자-에 있어 미지의 형제 위젯가 지정되었을 경우, 이 파일 관리자-에 있어 미지의 장소가 지정되어 파일 관리자-가 미지의 장소를 지원하고 있지 않는 경우, 또는 파일의 종류가 유효하지 않은 경우
IOException
- 입출력 에러가 발생했을 경우, 또는 close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우FileObject getFileForInput(JavaFileManager.Location location, String packageName, String relativeName) throws IOException
반환된 객체가원시 파일 또는클래스 파일을 나타내는 경우,JavaFileObject
의 인스턴스일 필요가 있습니다.
비공식에는, 이 메소드로 반환되는 파일 객체는, 장소, 패키지명, 및 상대명을 연결한 장소에 있습니다. 예를 들어,SOURCE_PATH 에 있는 com.sun.tools.javac 패키지내의 프로퍼티 파일 resources/compiler.properties 를 찾고 있는 경우, 다음과 같이 해 이 메소드를 호출할 수가 있습니다.
getFileForInput(SOURCE_PATH, "com.sun.tools.javac", "resources/compiler.properties");
이 호출이 Windows 상에서 실행되어 SOURCE_PATH 가 "C:\Documents and Settings\UncleBob\src\share\classes"
로 설정되어 있었을 경우, 유효한 결과는, 파일 "C:\Documents and Settings\UncleBob\src\share\classes\com\sun\tools\javac\resources\compiler.properties"
를 나타내는 파일 객체가 됩니다.
location
- 장소packageName
- 패키지명relativeName
- 상대명
null
가 돌려주어질 가능성이 있다
IllegalArgumentException
- 이 파일 관리자-에 있어 미지의 장소가 지정되어 파일 관리자-가 미지의 장소를 지원하고 있지 않는 경우, 또는 relativeName
가 유효하지 않은 경우
IOException
- 입출력 에러가 발생했을 경우, 또는 close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우FileObject getFileForOutput(JavaFileManager.Location location, String packageName, String relativeName, FileObject sibling) throws IOException
이 파일 관리자-는, 옵션으로서 형제 위젯를 출력처의 힌트로서 사용할 가능성이 있습니다. 이 힌트의 엄밀한 시멘틱스는 지정되지 않습니다. 예를 들어 Sun 의 컴파일러 javac 는, 클래스 파일의 출력 디렉토리가 지정되어 있지 않은 경우, 원시 파일과 같은 디렉토리에 클래스 파일을 배치합니다. 이 처리를 간편화하기 (위해)때문에, javac 는, 이 메소드를 호출할 때, 원시 파일을 형제 위젯로서 지정하는 일이 있습니다.
반환된 객체가원시 파일 또는클래스 파일을 나타내는 경우,JavaFileObject
의 인스턴스일 필요가 있습니다.
비공식에는, 이 메소드로 반환되는 파일 객체는, 장소, 패키지명, 및 상대명을 연결한 장소인가, 형제 인수의 다음에 있습니다. 예는,getFileForInput
를 참조해 주세요.
location
- 장소packageName
- 패키지명relativeName
- 상대명sibling
- 배치의 힌트로서 사용되는 파일 객체. null
도 가능
IllegalArgumentException
- 이 파일 관리자-에 있어 미지의 형제 위젯가 지정되었을 경우, 이 파일 관리자-에 있어 미지의 장소가 지정되어 파일 관리자-가 미지의 장소를 지원하고 있지 않는 경우, 또는 relativeName
가 유효하지 않은 경우
IOException
- 입출력 에러가 발생했을 경우, 또는 close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우
IllegalStateException
- close()
가 불려 가 이 파일 관리자-를 재차 열 수가 없는 경우void flush() throws IOException
Flushable
내의 flush
IOException
- 입출력 에러가 발생했을 경우close()
void close() throws IOException
Closeable
내의 close
IOException
- 입출력 에러가 발생했을 경우flush()
|
JavaTM Platform Standard Ed. 6 |
|||||||||
전의 클래스 다음의 클래스 | 프레임 있어 프레임 없음 | |||||||||
개요 : 상자 | 필드 | 생성자 | 메소드 | 상세: 필드 | 생성자 | 메소드 |
Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.