Класс SimpleJavaFileObject
- Все реализуемые интерфейсы:
FileObject, JavaFileObject
public class SimpleJavaFileObject extends Object implements JavaFileObject
- Начиная с версии:
- 1.6
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в интерфейсе JavaFileObject
JavaFileObject.Kind
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
protected final JavaFileObject.Kind |
kind |
Вид этого файлового объекта. |
protected final URI |
uri |
URI этого файлового объекта. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает SimpleJavaFileObject указанного вида и с указанным URI. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
delete() |
Удаляет этот файловый объект. |
static JavaFileObject |
forSource |
Создает JavaFileObject, представляющий указанное исходное содержимое. |
Modifier |
getAccessLevel() |
Предоставляет подсказку об уровне доступа класса, представленного этим файловым объектом. |
CharSequence |
getCharContent |
Возвращает символьное содержимое этого файлового объекта, если оно доступно. |
JavaFileObject.Kind |
getKind() |
Возвращает вид этого файлового объекта. |
long |
getLastModified() |
Возвращает время последнего изменения этого файлового объекта. |
String |
getName() |
Возвращает понятное пользователю имя этого файлового объекта. |
NestingKind |
getNestingKind() |
Предоставляет подсказку об уровне вложенности класса, представленного этим файловым объектом. |
boolean |
isNameCompatible |
Проверяет, совместим ли этот файловый объект с указанными простым именем и видом. |
InputStream |
openInputStream() |
Возвращает InputStream для этого файлового объекта. |
OutputStream |
openOutputStream() |
Возвращает OutputStream для этого файлового объекта. |
Reader |
openReader |
Возвращает средство чтения для этого объекта. |
Writer |
openWriter() |
Возвращает Writer для этого файлового объекта. |
URI |
toUri() |
Возвращает URI, идентифицирующий этот файловый объект. |
Подробное описание полей
uri
protected final URI uri
kind
protected final JavaFileObject.Kind kind
Подробное описание конструкторов
SimpleJavaFileObject
protected SimpleJavaFileObject(URI uri, JavaFileObject.Kind kind)
- Параметры:
-
uri— URI этого файлового объекта -
kind— вид этого файлового объекта
Подробное описание методов
toUri
public URI toUri()
FileObject- Определен в:
-
toUriв интерфейсеFileObject - Возвращает:
- URI
getName
public String getName()
FileObject"BobsApp\Test.java" в командной строке, этот метод должен вернуть
"BobsApp\Test.java", тогда как метод toUri может вернуть
file:///C:/Documents%20and%20Settings/UncleBob/BobsApp/Test.java.- Определен в:
-
getNameв интерфейсеFileObject - Возвращает:
- понятное пользователю имя
openInputStream
public InputStream openInputStream() throws IOException
- Определен в:
-
openInputStreamв интерфейсеFileObject - Требования к реализации:
- Эта реализация всегда выбрасывает UnsupportedOperationException.
- Возвращает:
- InputStream
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода
openOutputStream
public OutputStream openOutputStream() throws IOException
- Определен в:
-
openOutputStreamв интерфейсеFileObject - Требования к реализации:
- Эта реализация всегда выбрасывает UnsupportedOperationException.
- Возвращает:
- OutputStream
- Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода
openReader
public Reader openReader(boolean ignoreEncodingErrors) throws IOException
ignoreEncodingErrors не равно true.- Определен в:
-
openReaderв интерфейсеFileObject - Требования к реализации:
- Эта реализация оборачивает результат
getCharContent(boolean)вReader. - Параметры:
-
ignoreEncodingErrors— игнорировать ошибки кодирования, если значение равно true - Возвращает:
- Reader, оборачивающий результат getCharContent
- Выбрасывает:
-
IllegalStateException— если этот файловый объект был открыт для записи и не поддерживает чтение -
UnsupportedOperationException— если этот вид файлового объекта не поддерживает доступ к символам -
IOException— если произошла ошибка ввода-вывода
getCharContent
public CharSequence getCharContent(boolean ignoreEncodingErrors) throws IOException
ignoreEncodingErrors не равно true.- Определен в:
-
getCharContentв интерфейсеFileObject - Требования к реализации:
- Эта реализация всегда выбрасывает UnsupportedOperationException.
- Параметры:
-
ignoreEncodingErrors— игнорировать ошибки кодирования, если значение равно true - Возвращает:
- CharSequence, если доступна; в противном случае —
null - Выбрасывает:
-
IOException— если произошла ошибка ввода-вывода
openWriter
public Writer openWriter() throws IOException
- Определен в:
-
openWriterв интерфейсеFileObject - Требования к реализации:
- Эта реализация оборачивает результат
openOutputStream()вWriter. - Возвращает:
- Writer, оборачивающий результат openOutputStream
- Выбрасывает:
-
IllegalStateException— если этот файловый объект был открыт для чтения и не поддерживает запись -
UnsupportedOperationException— если этот вид файлового объекта не поддерживает доступ к символам -
IOException— если произошла ошибка ввода-вывода
getLastModified
public long getLastModified()
- Определен в:
-
getLastModifiedв интерфейсеFileObject - Требования к реализации:
- Эта реализация возвращает
0L. - Возвращает:
0L
delete
public boolean delete()
- Определен в:
-
deleteв интерфейсеFileObject - Требования к реализации:
- Эта реализация ничего не делает.
- Возвращает:
false
getKind
public JavaFileObject.Kind getKind()
JavaFileObject- Определен в:
-
getKindв интерфейсеJavaFileObject - Возвращает:
this.kind
isNameCompatible
public boolean isNameCompatible(String simpleName, JavaFileObject.Kind kind)
- Определен в:
-
isNameCompatibleв интерфейсеJavaFileObject - Требования к реализации:
- Эта реализация сравнивает путь URI объекта с указанным простым именем. Метод возвращает true, если указанный вид совпадает с видом этого объекта, а путь равен
simpleName + kind.extensionили заканчивается на"/" + simpleName + kind.extension.Этот метод вызывает
getKind()иtoUri()и не обращается напрямую к полямuriиkind. - Параметры:
-
simpleName— простое имя класса -
kind— вид - Возвращает:
-
true, если этот файловый объект совместим; в противном случае —false
getNestingKind
public NestingKind getNestingKind()
NestingKind.MEMBER, обозначая NestingKind.LOCAL или NestingKind.ANONYMOUS. Если уровень вложенности неизвестен или этот файловый объект не представляет файл класса, метод возвращает null.- Определен в:
-
getNestingKindв интерфейсеJavaFileObject - Требования к реализации:
- Эта реализация возвращает
null. - Возвращает:
- вид вложенности или
null, если вид вложенности неизвестен
getAccessLevel
public Modifier getAccessLevel()
null.- Определен в:
-
getAccessLevelв интерфейсеJavaFileObject - Требования к реализации:
- Эта реализация возвращает
null. - Возвращает:
- уровень доступа
forSource
public static JavaFileObject forSource(URI uri, String content)
JavaFileObject, представляющий указанное исходное содержимое. Указанный uri будет возвращен методом toUri(). Указанное content будет возвращено методом getCharContent(boolean). Метод getKind() вернет JavaFileObject.Kind.SOURCE.
Все остальные методы будут работать так, как описано в документации этого класса, если бы конструктор был вызван с uri и Kind.SOURCE.
Например, этот метод можно использовать для компиляции строки, находящейся в памяти, в набор файлов классов в целевом каталоге:
var code = """
public class CompiledCode {}
""";
var compiler = ToolProvider.getSystemJavaCompiler();
var targetDirectory = "...";
var task = compiler.getTask(null,
null,
null,
List.of("-d", targetDirectory),
null,
List.of(SimpleJavaFileObject.forSource(URI.create("CompiledCode.java"), code)));
if (!task.call()) {
throw new IllegalStateException("Compilation failed!");
}
- Параметры:
-
uri— значение, которое следует использовать для результирующегоJavaFileObject -
content— содержимоеJavaFileObject - Возвращает:
JavaFileObject, представляющий указанное исходное содержимое.- Начиная с версии:
- 23
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.compiler/javax/tools/SimpleJavaFileObject.html