XMLSpy делает это для Вас, хотя это не свободно...
я полагаю, что Жидкий Xml Studio делает это для Вас и свободен, но я лично не использовал его для создания данных тестирования.
№
BufferedReader.close()
закрывает поток согласно javadoc для BufferedReader и InputStreamReader
, а также
FileReader.close()
делает.
]Исходный код для BufferedReader показывает, что базовый объект закрывается, когда вы закрываете BufferedReader.
Согласно источнику BufferedReader, в этом случае bReader.close вызывает fReader.close, так что технически вам не нужно вызывать последний.
Как указывали другие , вам нужно только закрыть внешнюю оболочку.
BufferedReader reader = new BufferedReader(new FileReader(fileName));
Существует очень малая вероятность утечки дескриптора файла, если конструктор BufferedReader
выдал исключение (например, OutOfMemoryError
). Если ваше приложение находится в этом состоянии, то, насколько тщательной должна быть очистка, может зависеть, насколько важно не лишать ОС ресурсов, которые она может захотеть выделить для других программ.
Closeable интерфейс может использоваться, если конструктор оболочки может дать сбой в Java 5 или 6:
Reader reader = new FileReader(fileName);
Closeable resource = reader;
try {
BufferedReader buffered = new BufferedReader(reader);
resource = buffered;
// TODO: input
} finally {
resource.close();
}
Код Java 7 должен использовать шаблон try-with-resources :
try (Reader reader = new FileReader(fileName);
BufferedReader buffered = new BufferedReader(reader)) {
// TODO: input
}