uTools-Manuals/docs/java/javax/tools/JavaFileManager.html

690 lines
41 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.tools
</div>
<h2 class="title" title="Interface JavaFileManager">Interface JavaFileManager</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Superinterfaces:
</dt>
<dd>
<span><a href="../../java/lang/AutoCloseable.html" title="java.lang中的接口">AutoCloseable</a> <a href="../../java/io/Closeable.html" title="java.io中的接口">Closeable</a> <a href="../../java/io/Flushable.html" title="java.io中的接口">Flushable</a> <a href="../../javax/tools/OptionChecker.html" title="javax.tools中的接口">OptionChecker</a></span>
</dd>
</dl>
<dl>
<dt>
All Known Subinterfaces:
</dt>
<dd>
<span><a href="../../javax/tools/StandardJavaFileManager.html" title="javax.tools中的接口">StandardJavaFileManager</a></span>
</dd>
</dl>
<dl>
<dt>
所有已知实现类:
</dt>
<dd>
<span><a href="../../javax/tools/ForwardingJavaFileManager.html" title="javax.tools中的类">ForwardingJavaFileManager</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">JavaFileManager</span>
extends <a href="../../java/io/Closeable.html" title="interface in java.io">Closeable</a>, <a href="../../java/io/Flushable.html" title="interface in java.io">Flushable</a>, <a href="../../javax/tools/OptionChecker.html" title="interface in javax.tools">OptionChecker</a></pre>
<div class="block">
<span>用于Java编程语言源和类文件的工具的文件管理器。</span>
<span>在这种情况下, <em>文件</em>意味着抽象普通文件和其他数据源。</span>
<p> <span>当构建新的JavaFileObjects时文件管理器必须确定在哪里创建它们。</span> <span>例如,如果文件管理器管理文件系统上的常规文件,则很有可能在创建或查找文件时使用当前/工作目录作为默认位置。</span> <span>可以向文件管理器提供关于在哪里创建文件的许多提示。</span> <span>任何文件管理器可能会选择忽略这些提示。</span> </p>
<p> <span>此接口中的某些方法使用类名。</span> <span>这些类名必须在Java Virtual Machine内部格式的完全限定类和接口名称中给出。</span> <span>为了方便 '。'</span> <span>和'/'是可互换的。</span> <span>内部形式在<cite>The Java™ Virtual Machine Specification</cite>的第四章中定义。</span> </p>
<blockquote>
<span><p> <i>Discussion:</i> this means that the names "java/lang.package-info", "java/lang/package-info", "java.lang.package-info", are valid and equivalent. Compare to binary name as defined in <cite>The Java™ Language Specification</cite>, section 13.1 "The Form of a Binary". </p></span>
</blockquote>
<p> <span>姓名的情况很重要。</span> <span>所有名称应视为区分大小写。</span> <span>例如,某些文件系统具有不区分大小写,区分大小写的文件名。</span> <span>代表这样的文件的文件对象应该使用<a href="../../java/io/File.html#getCanonicalFile--"><code>File.getCanonicalFile()</code></a>或类似的方法来保护大小写。</span> <span>如果系统不区分大小写,文件对象必须使用其他方式来保护大小写。</span> </p>
<p> <span><em><a name="relative_name">Relative names</a> </em>这个接口中的一些方法使用相对名称。</span> <span>相对名称是以“/”分隔的路径段的非空,非空序列。</span> <span>'''</span> <span>或'..'是无效的路径段。</span> <span>有效的相对名称必须与<a href="http://www.ietf.org/rfc/rfc3986.txt">RFC 3986</a>第3.3节的“无路径”规则相匹配。</span> <span>非正式地,这应该是真的:</span>
<!-- URI.create(relativeName).normalize().getPath().equals(relativeName) --></p>
<pre> <span>URI.<a href="../../java/net/URI.html#create-java.lang.String-">create</a>(relativeName).<a href="../../java/net/URI.html#normalize--">normalize</a>().<a href="../../java/net/URI.html#getPath--">getPath</a>().equals(relativeName)</span> </pre>
<p> <span>此接口中的所有方法可能会抛出SecurityException异常。</span> </p>
<p> <span>此接口的对象不需要支持多线程访问,即同步。</span> <span>但是,它必须支持对此对象创建的不同文件对象的并发访问。</span> </p>
<p> <span><em>实现说明:</em>这个要求的结果是,输出到一个<a href="../../java/util/jar/JarOutputStream.html" title="java.util.jar中的类">JarOutputStream的</a>一个微不足道的实现不是一个充分的实现。</span> <span>也就是说而不是直接创建返回JarOutputStream的JavaFileObject内容必须缓存直到关闭然后写入JarOutputStream。</span> </p>
<p> <span>除非明确允许,如果给定了一个<code>null</code>参数,则该接口中的所有方法都可能会抛出<code>null</code></span> </p>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.6
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../javax/tools/JavaFileObject.html" title="javax.tools中的接口"><code>JavaFileObject</code></a> <a href="../../javax/tools/FileObject.html" title="javax.tools中的接口"><code>FileObject</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- --> </a> <h3>Nested Class Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Nested Class Summary table, listing nested classes, and an explanation">
<caption>
<span>Nested Classes</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Interface and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static interface </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a></span></code>
<div class="block">
文件对象的位置接口。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#close--">close</a></span>()</code>
<div class="block">
释放此文件管理器直接或间接打开的任何资源。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#flush--">flush</a></span>()</code>
<div class="block">
刷新此文件管理器直接或间接打开输出的任何资源。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../java/lang/ClassLoader.html" title="class in java.lang">ClassLoader</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#getClassLoader-javax.tools.JavaFileManager.Location-">getClassLoader</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location)</code>
<div class="block">
获取从给定位置加载插件的类加载器。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code><a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#getFileForInput-javax.tools.JavaFileManager.Location-java.lang.String-java.lang.String-">getFileForInput</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location, <a href="../../java/lang/String.html" title="class in java.lang">String</a> packageName, <a href="../../java/lang/String.html" title="class in java.lang">String</a> relativeName)</code>
<div class="block">
<span>获取一个<a href="../../javax/tools/FileObject.html" title="javax.tools中的接口">file object</a>用于表示指定的输入<a href="JavaFileManager.html#relative_name">relative name</a>中指定的包在给定的位置。</span>
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code><a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#getFileForOutput-javax.tools.JavaFileManager.Location-java.lang.String-java.lang.String-javax.tools.FileObject-">getFileForOutput</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location, <a href="../../java/lang/String.html" title="class in java.lang">String</a> packageName, <a href="../../java/lang/String.html" title="class in java.lang">String</a> relativeName, <a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> sibling)</code>
<div class="block">
<span>获取一个<a href="../../javax/tools/FileObject.html" title="javax.tools中的接口">file object</a>用于表示指定的输出<a href="JavaFileManager.html#relative_name">relative name</a>中指定的包在给定的位置。</span>
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code><a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#getJavaFileForInput-javax.tools.JavaFileManager.Location-java.lang.String-javax.tools.JavaFileObject.Kind-">getJavaFileForInput</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location, <a href="../../java/lang/String.html" title="class in java.lang">String</a> className, <a href="../../javax/tools/JavaFileObject.Kind.html" title="enum in javax.tools">JavaFileObject.Kind</a> kind)</code>
<div class="block">
<span>获取一个<a href="../../javax/tools/JavaFileObject.html" title="javax.tools中的接口">file object</a>用于表示给定位置中指定类型的指定类的输入。</span>
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code><a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#getJavaFileForOutput-javax.tools.JavaFileManager.Location-java.lang.String-javax.tools.JavaFileObject.Kind-javax.tools.FileObject-">getJavaFileForOutput</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location, <a href="../../java/lang/String.html" title="class in java.lang">String</a> className, <a href="../../javax/tools/JavaFileObject.Kind.html" title="enum in javax.tools">JavaFileObject.Kind</a> kind, <a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> sibling)</code>
<div class="block">
<span>获取一个<a href="../../javax/tools/JavaFileObject.html" title="javax.tools中的接口">file object</a> ,用于表示给定位置中指定类型的指定类的输出。</span>
</div> </td>
</tr>
<tr class="rowColor" id="i7">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#handleOption-java.lang.String-java.util.Iterator-">handleOption</a></span>(<a href="../../java/lang/String.html" title="class in java.lang">String</a> current, <a href="../../java/util/Iterator.html" title="interface in java.util">Iterator</a>&lt;<a href="../../java/lang/String.html" title="class in java.lang">String</a>&gt; remaining)</code>
<div class="block">
处理一个选项
</div> </td>
</tr>
<tr class="altColor" id="i8">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#hasLocation-javax.tools.JavaFileManager.Location-">hasLocation</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location)</code>
<div class="block">
确定此文件管理器是否已知位置。
</div> </td>
</tr>
<tr class="rowColor" id="i9">
<td class="colFirst"><code><a href="../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#inferBinaryName-javax.tools.JavaFileManager.Location-javax.tools.JavaFileObject-">inferBinaryName</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location, <a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a> file)</code>
<div class="block">
根据位置触发文件对象的二进制名称。
</div> </td>
</tr>
<tr class="altColor" id="i10">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#isSameFile-javax.tools.FileObject-javax.tools.FileObject-">isSameFile</a></span>(<a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> a, <a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> b)</code>
<div class="block">
比较两个文件对象如果它们代表相同的底层对象则返回true。
</div> </td>
</tr>
<tr class="rowColor" id="i11">
<td class="colFirst"><code><a href="../../java/lang/Iterable.html" title="interface in java.lang">Iterable</a>&lt;<a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../javax/tools/JavaFileManager.html#list-javax.tools.JavaFileManager.Location-java.lang.String-java.util.Set-boolean-">list</a></span>(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location, <a href="../../java/lang/String.html" title="class in java.lang">String</a> packageName, <a href="../../java/util/Set.html" title="interface in java.util">Set</a>&lt;<a href="../../javax/tools/JavaFileObject.Kind.html" title="enum in javax.tools">JavaFileObject.Kind</a>&gt; kinds, boolean recurse)</code>
<div class="block">
列出与给定位置中给定条件匹配的所有文件对象。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.javax.tools.OptionChecker">
<!-- --> </a> <h3>Methods inherited from interface javax.tools.<a href="../../javax/tools/OptionChecker.html" title="interface in javax.tools">OptionChecker</a></h3> <code><a href="../../javax/tools/OptionChecker.html#isSupportedOption-java.lang.String-">isSupportedOption</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getClassLoader-javax.tools.JavaFileManager.Location-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getClassLoader</h4> <pre><a href="../../java/lang/ClassLoader.html" title="class in java.lang">ClassLoader</a> getClassLoader(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location)</pre>
<div class="block">
<span>获取从给定位置加载插件的类加载器。</span>
<span>例如,要加载注释处理器,编译器将为<a href="../../javax/tools/StandardLocation.html#ANNOTATION_PROCESSOR_PATH"><code>ANNOTATION_PROCESSOR_PATH</code></a>位置请求类加载器。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
<span>给定位置的类加载器;</span>
<span><code>null</code>如果从给定位置加载插件已禁用或位置未知</span>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/SecurityException.html" title="class in java.lang">SecurityException</a></code> - 如果无法在当前安全上下文中创建类加载器
</dd>
<dd>
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果已经调用了
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a> ,并且该文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="list-javax.tools.JavaFileManager.Location-java.lang.String-java.util.Set-boolean-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>list</h4> <pre><a href="../../java/lang/Iterable.html" title="interface in java.lang">Iterable</a>&lt;<a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a>&gt; list(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> packageName,
<a href="../../java/util/Set.html" title="interface in java.util">Set</a>&lt;<a href="../../javax/tools/JavaFileObject.Kind.html" title="enum in javax.tools">JavaFileObject.Kind</a>&gt; kinds,
boolean recurse)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>列出与给定位置中给定条件匹配的所有文件对象。</span>
<span>如果recurse为真则在“子包”中列出文件对象。</span>
<p> <span>注意:即使给定的位置对于该文件管理器是未知的,它也可能不会返回<code>null</code></span> <span>而且,未知的位置可能不会引起异常。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dd>
<code>packageName</code> - 一个包名
</dd>
<dd>
<code>kinds</code> - 只返回这些类型的对象
</dd>
<dd>
<code>recurse</code> - 如果真的包括“子包”
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
符合给定条件的文件对象的迭代
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误或者如果
<a href="../../javax/tools/JavaFileManager.html#close--">调用了<code>close()</code></a> ,并且此文件管理器无法重新打开
</dd>
<dd>
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a>已被调用,并且此文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="inferBinaryName-javax.tools.JavaFileManager.Location-javax.tools.JavaFileObject-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>inferBinaryName</h4> <pre><a href="../../java/lang/String.html" title="class in java.lang">String</a> inferBinaryName(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location,
<a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a> file)</pre>
<div class="block">
<span>根据位置触发文件对象的二进制名称。</span>
<span>二进制名称返回根据<cite>The Java™ Language Specification</cite>可能不是一个有效的可执行文件名。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dd>
<code>file</code> - 一个文件对象
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个二进制名称或
<code>null</code>在给定位置找不到文件对象
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果已经调用了
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a> ,并且此文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="isSameFile-javax.tools.FileObject-javax.tools.FileObject-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>isSameFile</h4> <pre>boolean isSameFile(<a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> a,
<a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> b)</pre>
<div class="block">
比较两个文件对象如果它们代表相同的底层对象则返回true。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>a</code> - 一个文件对象
</dd>
<dd>
<code>b</code> - 一个文件对象
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
如果给定的文件对象代表相同的底层对象则为true
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果任一参数是使用另一个文件管理器创建的,并且此文件管理器不支持外部文件对象
</dd>
</dl> </li>
</ul> <a name="handleOption-java.lang.String-java.util.Iterator-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>handleOption</h4> <pre>boolean handleOption(<a href="../../java/lang/String.html" title="class in java.lang">String</a> current,
<a href="../../java/util/Iterator.html" title="interface in java.util">Iterator</a>&lt;<a href="../../java/lang/String.html" title="class in java.lang">String</a>&gt; remaining)</pre>
<div class="block">
<span>处理一个选项</span>
<span>如果<code>current</code>是该文件管理器的选项, <code>remaining</code><code>remaining</code>使用该选项的任何参数并返回true否则返回false。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>current</code> - 当前选项
</dd>
<dd>
<code>remaining</code> - 剩余选项
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
如果此选项由此文件管理器处理则为true否则为false
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果此文件管理器的此选项被错误地使用
</dd>
<dd>
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果已经调用了
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a> ,并且该文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="hasLocation-javax.tools.JavaFileManager.Location-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>hasLocation</h4> <pre>boolean hasLocation(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location)</pre>
<div class="block">
确定此文件管理器是否已知位置。
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
如果位置已知,则为真
</dd>
</dl> </li>
</ul> <a name="getJavaFileForInput-javax.tools.JavaFileManager.Location-java.lang.String-javax.tools.JavaFileObject.Kind-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getJavaFileForInput</h4> <pre><a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a> getJavaFileForInput(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> className,
<a href="../../javax/tools/JavaFileObject.Kind.html" title="enum in javax.tools">JavaFileObject.Kind</a> kind)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>获取一个<a href="../../javax/tools/JavaFileObject.html" title="javax.tools中的接口">file object</a> ,用于表示给定位置中指定类型的指定类的输入。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dd>
<code>className</code> - 一个类的名称
</dd>
<dd>
<code>kind</code> - 文件的种类,必须是
<a href="../../javax/tools/JavaFileObject.Kind.html#SOURCE"><code>SOURCE</code></a>
<a href="../../javax/tools/JavaFileObject.Kind.html#CLASS"><code>CLASS</code>之一</a>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个文件对象,如果文件不存在,可能会返回
<code>null</code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果该文件管理器不知道该位置,并且文件管理器不支持未知位置,或者该类型无效
</dd>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误或者如果
<a href="../../javax/tools/JavaFileManager.html#close--">调用了<code>close()</code></a> ,并且该文件管理器无法重新打开
</dd>
<dd>
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a>已被调用,并且该文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="getJavaFileForOutput-javax.tools.JavaFileManager.Location-java.lang.String-javax.tools.JavaFileObject.Kind-javax.tools.FileObject-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getJavaFileForOutput</h4> <pre><a href="../../javax/tools/JavaFileObject.html" title="interface in javax.tools">JavaFileObject</a> getJavaFileForOutput(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> className,
<a href="../../javax/tools/JavaFileObject.Kind.html" title="enum in javax.tools">JavaFileObject.Kind</a> kind,
<a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> sibling)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>得到一个<a href="../../javax/tools/JavaFileObject.html" title="javax.tools中的接口">file object</a> ,用于表示给定位置中指定类型的指定类的输出。</span>
<p> <span>可选地,该文件管理器可以将兄弟姐妹视为提示放置输出的位置。</span> <span>这个提示的确切语义是未指定的。</span> <span>例如JDK编译器javac将将类文件放置在与源文件源相同的目录中除非提供了一个类文件输出目录。</span> <span>为了方便这种行为javac可以在调用此方法时将起始源文件提供为兄弟。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dd>
<code>className</code> - 一个类的名称
</dd>
<dd>
<code>kind</code> - 文件的种类,必须是
<a href="../../javax/tools/JavaFileObject.Kind.html#SOURCE"><code>SOURCE</code></a>
<a href="../../javax/tools/JavaFileObject.Kind.html#CLASS"><code>CLASS</code>之一</a>
</dd>
<dd>
<span><code>sibling</code> - 用作放置提示的文件对象;</span>
<span>可能是<code>null</code></span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
用于输出的文件对象
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果此文件管理器不知道同级,或者该文件管理器不知道该位置,并且文件管理器不支持未知位置,或者该类型无效
</dd>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误或者如果
<a href="../../javax/tools/JavaFileManager.html#close--">调用了<code>close()</code></a> ,并且该文件管理器无法重新打开
</dd>
<dd>
已经调用了
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> -
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a> ,这个文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="getFileForInput-javax.tools.JavaFileManager.Location-java.lang.String-java.lang.String-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getFileForInput</h4> <pre><a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> getFileForInput(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> packageName,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> relativeName)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>获取一个<a href="../../javax/tools/FileObject.html" title="javax.tools中的接口">file object</a>用于表示指定的输入<a href="JavaFileManager.html#relative_name">relative name</a>中指定的包在给定的位置。</span>
<p> <span>如果返回的对象表示一个<a href="../../javax/tools/JavaFileObject.Kind.html#SOURCE">source</a><a href="../../javax/tools/JavaFileObject.Kind.html#CLASS">class</a>文件,则它必须是<a href="../../javax/tools/JavaFileObject.html" title="javax.tools中的接口"><code>JavaFileObject</code></a>一个实例。</span> </p>
<p> <span>非法地,此方法返回的文件对象位于位置,包名称和相对名称的并置中。</span> <span>例如,要在<a href="../../javax/tools/StandardLocation.html#SOURCE_PATH">SOURCE_PATH</a>位置的“com.sun.tools.javac”包中找到属性文件“resources / compiler.properties”可能会调用此方法</span> </p>
<pre> <span>getFileForInput(SOURCE_PATH, "com.sun.tools.javac", "resources/compiler.properties");</span> </pre>
<p> <span>如果调用在Windows上执行SOURCE_PATH设置为<code>"C:\Documents and Settings\UncleBob\src\share\classes"</code> ,则有效的结果将是表示文件"C:\Documents and Settings\UncleBob\src\share\classes\com\sun\tools\javac\resources\compiler.properties"的文件<code>"C:\Documents and Settings\UncleBob\src\share\classes\com\sun\tools\javac\resources\compiler.properties"</code></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dd>
<code>packageName</code> - 一个包名
</dd>
<dd>
<code>relativeName</code> - 相对名称
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个文件对象,如果文件不存在,可能会返回
<code>null</code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果该文件管理器不知道该位置,并且文件管理器不支持未知位置,或者如果
<code>relativeName</code>无效
</dd>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误或者如果已调用
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a> ,并且无法重新打开该文件管理器
</dd>
<dd>
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果已经调用了
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a> ,并且该文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="getFileForOutput-javax.tools.JavaFileManager.Location-java.lang.String-java.lang.String-javax.tools.FileObject-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getFileForOutput</h4> <pre><a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> getFileForOutput(<a href="../../javax/tools/JavaFileManager.Location.html" title="interface in javax.tools">JavaFileManager.Location</a> location,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> packageName,
<a href="../../java/lang/String.html" title="class in java.lang">String</a> relativeName,
<a href="../../javax/tools/FileObject.html" title="interface in javax.tools">FileObject</a> sibling)
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>获取一个<a href="../../javax/tools/FileObject.html" title="javax.tools中的接口">file object</a>用于表示指定的输出<a href="JavaFileManager.html#relative_name">relative name</a>中指定的包在给定的位置。</span>
<p> <span>可选地,该文件管理器可以将兄弟姐妹视为提示放置输出的位置。</span> <span>这个提示的确切语义是未指定的。</span> <span>例如JDK编译器javac将将类文件放置在与源文件源相同的目录中除非提供了一个类文件输出目录。</span> <span>为了方便这种行为javac可以在调用此方法时将起始源文件提供为兄弟。</span> </p>
<p> <span>如果返回的对象表示一个<a href="../../javax/tools/JavaFileObject.Kind.html#SOURCE">source</a><a href="../../javax/tools/JavaFileObject.Kind.html#CLASS">class</a>文件,则它必须是<a href="../../javax/tools/JavaFileObject.html" title="javax.tools中的接口"><code>JavaFileObject</code></a>一个实例。</span> </p>
<p> <span>非法地,此方法返回的文件对象位于位置,包名称和相对名称的连接中,或者位于兄弟参数旁边。</span> <span><a href="../../javax/tools/JavaFileManager.html#getFileForInput-javax.tools.JavaFileManager.Location-java.lang.String-java.lang.String-"><code>getFileForInput</code></a></span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>location</code> - 一个位置
</dd>
<dd>
<code>packageName</code> - 一个包名
</dd>
<dd>
<code>relativeName</code> - 相对名称
</dd>
<dd>
<span><code>sibling</code> - 用作放置提示的文件对象;</span>
<span>可能是<code>null</code></span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
一个文件对象
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/lang/IllegalArgumentException.html" title="class in java.lang">IllegalArgumentException</a></code> - 如果此文件管理器不知道同胞,或者该文件管理器不知道该位置,并且文件管理器不支持未知位置,或者如果
<code>relativeName</code>无效
</dd>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误或者如果已调用
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a> ,并且无法重新打开该文件管理器
</dd>
<dd>
<code><a href="../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a>已被调用,并且该文件管理器无法重新打开
</dd>
</dl> </li>
</ul> <a name="flush--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>flush</h4> <pre>void flush()
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>刷新此文件管理器直接或间接打开输出的任何资源。</span>
<span>冲洗一个封闭的文件管理器没有任何效果。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../java/io/Flushable.html#flush--">flush</a></code>中的
<code><a href="../../java/io/Flushable.html" title="interface in java.io">Flushable</a></code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../javax/tools/JavaFileManager.html#close--"><code>close()</code></a>
</dd>
</dl> </li>
</ul> <a name="close--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>close</h4> <pre>void close()
throws <a href="../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>释放此文件管理器直接或间接打开的任何资源。</span>
<span>这可能会使此文件管理器无用,并且对此对象或通过此对象获取的任何对象的方法的后续调用的影响是未定义的,除非明确允许。</span>
<span>但是,关闭已经关闭的文件管理器没有任何效果。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../java/lang/AutoCloseable.html#close--">close</a></code>在界面
<code><a href="../../java/lang/AutoCloseable.html" title="interface in java.lang">AutoCloseable</a></code>
</dd>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../java/io/Closeable.html#close--">close</a></code>在接口
<code><a href="../../java/io/Closeable.html" title="interface in java.io">Closeable</a></code>
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果发生I / O错误
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../javax/tools/JavaFileManager.html#flush--"><code>flush()</code></a>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>