-1
ファイルのいくつかの行を置き換えるメソッドを書きました(この質問の目的ではありません)。すべてうまく動作しますが、私が書き込みを始めるときにファイルが読み込みのために閉じられているかどうか疑問に思っています。私のソリューションが安全であることを確認したいと思います。それは私がやったものだ:私はtry-with-resources
は文の末尾にリソースを閉じので、このコードは、潜在的な問題の原因になることができると思い書き込みを開始する前にファイルを閉じる
private void replaceFileWithContent(File file, String content) throws IOException {
try (FileOutputStream fileOut = new FileOutputStream(file.getAbsolutePath())) {
fileOut.write(content.getBytes(Charset.defaultCharset()));
}
}
:
private void replaceCodeInTranslationFile(File file, String code) {
if (file.exists()) {
try (Stream<String> lines = Files.lines(Paths.get(file.getAbsolutePath()), Charset.defaultCharset())) {
String output = this.getLinesWithUpdatedCode(lines, code);
this.replaceFileWithContent(file, output); // is it safe?
} catch (IOException e) {
throw new UncheckedIOException(e);
}
}
}
方法replaceFileWithContent()
は次のようになります。私は正しいですか?
はい、あります。それは、それがする唯一のものです。奇妙な質問。 – EJP