public interface StandardJavaFileManager extends JavaFileManager
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject>
diagnostics =
new DiagnosticCollector<JavaFileObject>()
;
StandardJavaFileManager fm = compiler.getStandardFileManager(diagnostics, null, null);
此文件管理器创建一个代表普通文件对象files , zip file entries类似的基于文件系统的容器,或条目。
从实现此接口的文件管理器返回的任何文件对象必须遵守以下行为:
FileObject.delete()
相当于File.delete()
, FileObject.getLastModified()
相当于File.lastModified()
, FileObject.getCharContent(boolean)
, FileObject.openInputStream()
和FileObject.openReader(boolean)
必须成功,如果下面会成功(忽略编码问题):
new FileInputStream(new File(fileObject.toUri()))
FileObject.openOutputStream()
和FileObject.openWriter()
必须成功,如果以下将成功(忽略编码问题):
new FileOutputStream(new File(fileObject.toUri()))
FileObject.toUri()
返回
file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java
jar:///C:/Documents%20and%20Settings/UncleBob/lib/vendorA.jar!com/vendora/LibraryClass.class
file:BobsApp/Test.java
(文件名是相对的,取决于当前的目录) jar:lib/vendorA.jar!com/vendora/LibraryClass.class
(上半部分路径取决于当前目录,而后面的组件是合法的) Test.java
(此URI取决于当前目录,没有模式) jar:///C:/Documents%20and%20Settings/UncleBob/BobsApp/../lib/vendorA.jar!com/vendora/LibraryClass.class
(路径不规范化) JavaFileManager.Location
Modifier and Type | Method and Description |
---|---|
Iterable<? extends JavaFileObject> |
getJavaFileObjects(File... files)
获取表示给定文件的文件对象。
|
Iterable<? extends JavaFileObject> |
getJavaFileObjects(String... names)
获取表示给定文件名的文件对象。
|
Iterable<? extends JavaFileObject> |
getJavaFileObjectsFromFiles(Iterable<? extends File> files)
获取表示给定文件的文件对象。
|
Iterable<? extends JavaFileObject> |
getJavaFileObjectsFromStrings(Iterable<String> names)
获取表示给定文件名的文件对象。
|
Iterable<? extends File> |
getLocation(JavaFileManager.Location location)
获取与给定位置相关联的路径。
|
boolean |
isSameFile(FileObject a, FileObject b)
比较两个文件对象,如果它们表示相同的规范文件,zip文件条目或任何基于文件系统的容器中的条目,则返回true。
|
void |
setLocation(JavaFileManager.Location location, Iterable<? extends File> path)
将给定路径与给定位置相关联。
|
close, flush, getClassLoader, getFileForInput, getFileForOutput, getJavaFileForInput, getJavaFileForOutput, handleOption, hasLocation, inferBinaryName, list
isSupportedOption
boolean isSameFile(FileObject a, FileObject b)
isSameFile
在界面
JavaFileManager
a
- 一个文件对象
b
- 一个文件对象
IllegalArgumentException
- 如果任一参数是使用另一个文件管理器实现创建的
Iterable<? extends JavaFileObject> getJavaFileObjectsFromFiles(Iterable<? extends File> files)
files
- 文件列表
IllegalArgumentException
- 如果文件列表包含目录
Iterable<? extends JavaFileObject> getJavaFileObjects(File... files)
files
- 一系列文件
IllegalArgumentException
- 如果文件数组包含目录
NullPointerException
- 如果给定的数组包含空元素
Iterable<? extends JavaFileObject> getJavaFileObjectsFromStrings(Iterable<String> names)
names
- 文件名列表
IllegalArgumentException
- 如果文件名列表包含目录
Iterable<? extends JavaFileObject> getJavaFileObjects(String... names)
names
- 文件名列表
IllegalArgumentException
- 如果文件名数组包含目录
NullPointerException
- 如果给定的数组包含空元素
void setLocation(JavaFileManager.Location location, Iterable<? extends File> path) throws IOException
location
- 一个位置
path
- 文件列表,如果
null
使用此位置的默认路径
IllegalArgumentException
- 如果位置是输出位置,并且路径不包含正好一个元素
IOException
- 如果位置是输出位置,并且路径不表示现有目录
getLocation(javax.tools.JavaFileManager.Location)
Iterable<? extends File> getLocation(JavaFileManager.Location location)
location
- 一个位置
null
如果这个位置没有关联的路径
setLocation(javax.tools.JavaFileManager.Location, java.lang.Iterable<? extends java.io.File>)