Java – ファイルへのリーダーの書き込み
このクイックチュートリアルでは、
Reader
の内容を通常のJava、次にGuava、そして最後にApache Commons IOライブラリを使用して** Fileに書き込みます。
この記事はリンクの一部です:/java-tutorial[The Java – Back to Basic]シリーズ。
1 Java
を使う
簡単なJavaソリューションから始めましょう。
@Test
public void givenUsingPlainJava__whenWritingReaderContentsToFile__thenCorrect()
throws IOException {
Reader initialReader = new StringReader("Some text");
int intValueOfChar;
StringBuilder buffer = new StringBuilder();
while ((intValueOfChar = initialReader.read()) != -1) {
buffer.append((char) intValueOfChar);
}
initialReader.close();
File targetFile = new File("src/test/resources/targetFile.txt");
targetFile.createNewFile();
Writer targetFileWriter = new FileWriter(targetFile);
targetFileWriter.write(buffer.toString());
targetFileWriter.close();
}
まず、Readerのコンテンツを文字列に読み込んでいます。それから、文字列をファイルに書き込むだけです。
2グアバ
とは
グアバの解決法はより簡単です – 読者をファイルにすることに対処するためのAPIがあります。
@Test
public void givenUsingGuava__whenWritingReaderContentsToFile__thenCorrect()
throws IOException {
Reader initialReader = new StringReader("Some text");
File targetFile = new File("src/test/resources/targetFile.txt");
com.google.common.io.Files.touch(targetFile);
CharSink charSink = com.google.common.io.Files.
asCharSink(targetFile, Charset.defaultCharset(), FileWriteMode.APPEND);
charSink.writeFrom(initialReader);
initialReader.close();
}
3 Apache Commons IO
を使う
そして最後に、Commons IOソリューション – また、より高レベルのAPIを使用して
Reader
からデータを読み取り、そのデータをファイルに書き込む。
@Test
public void givenUsingCommonsIO__whenWritingReaderContentsToFile__thenCorrect()
throws IOException {
Reader initialReader = new CharSequenceReader("CharSequenceReader extends Reader");
File targetFile = new File("src/test/resources/targetFile.txt");
FileUtils.touch(targetFile);
byte[]buffer = IOUtils.toByteArray(initialReader);
FileUtils.writeByteArrayToFile(targetFile, buffer);
initialReader.close();
}
そしてそこに我々はそれを持っています – Readerの内容をFileに書き込むための3つの簡単な解決策。