原文:http://zetcode.com/articles/javaappendtofile/
Java 附加到文件教程显示了如何用 Java 附加到文件。 我们使用FileWriter,FileOutputStream,Files,RandomAccessFile,Google Guava 和 Apache Commons IO。
附加到文件通常在日志记录中使用。
在示例中,我们将文本附加到文件中。
towns.txt
BratislavaMoldavaKošiceTrenčínPrešovŽilina
我们使用此文本文件。 它位于src/main/resources目录中。
Java 使用FileWriter附加到文件
FileWriter类用于编写字符流。 FileWriter采用可选的第二个参数:append。 如果设置为true,则数据将被写入文件末尾。
JavaAppendFileFileWriter.java
package com.zetcode;import java.io.FileWriter;import java.io.IOException;public class JavaAppendFileFileWriter {public static void main(String[] args) throws IOException {String fileName = "src/main/resources/towns.txt";try (FileWriter fw = new FileWriter(fileName, true)) {fw.append("Žilina\n");}}}
本示例使用FileWriter将数据附加到文件中。
Java 用FileOutputStream附加到文件
FileOutputStream是用于将数据写入File或FileDescriptor的输出流。 它带有一个可选的第二个参数,该参数确定是否将数据附加到文件中。
JavaAppendFileFileOutputStream.java
package com.zetcode;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;public class JavaAppendFileFileOutputStream {public static void main(String[] args) throws FileNotFoundException, IOException {String fileName = "src/main/resources/towns.txt";byte[] tb = "Žilina\n".getBytes();try (FileOutputStream fos = new FileOutputStream(fileName, true)) {fos.write(tb);}}}
本示例使用FileOutputStream将数据附加到文件中。
Java 使用Files附加到文件
Java 7 引入了java.nio.file.Files类,该类可用于轻松地将数据附加到文件中。
JavaAppendFileFiles.java
package com.zetcode;import java.io.IOException;import java.nio.file.Files;import java.nio.file.Paths;import java.nio.file.StandardOpenOption;public class JavaAppendFileFiles {public static void main(String[] args) throws IOException {String fileName = "src/main/resources/towns.txt";byte[] tb = "Žilina\n".getBytes();Files.write(Paths.get(fileName), tb, StandardOpenOption.APPEND);}}
本示例将数据附加Files。
Files.write(Paths.get(fileName), tb, StandardOpenOption.APPEND);
Files.write()的第三个参数表明如何打开文件进行写入。 使用StandardOpenOption.APPEND可以打开文件进行附加。
Java 用RandomAccessFile附加到文件
RandomAccessFile用于读取和写入随机访问文件。
JavaAppendFileRandomAccessFile.java
package com.zetcode;import java.io.File;import java.io.IOException;import java.io.RandomAccessFile;public class JavaAppendFileRandomAccessFile {public static void main(String[] args) throws IOException {String fileName = "src/main/resources/towns.txt";File file = new File(fileName);try (RandomAccessFile raf = new RandomAccessFile(file, "rw")) {long length = raf.length();raf.setLength(length + 1);raf.seek(raf.length());raf.writeBytes("Žilina\n");}}}
在此示例中,我们将数据附加RandomAccessFile。
Java 用 Guava 附加到文件
我们可以使用 Guava 库将其附加到文件中。
<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>22.0</version></dependency>
我们需要这种 Guava 依赖。
JavaAppendFileGuava.java
package com.zetcode;import com.google.common.base.Charsets;import com.google.common.io.CharSink;import com.google.common.io.FileWriteMode;import com.google.common.io.Files;import java.io.File;import java.io.IOException;public class JavaAppendFileGuava {public static void main(String[] args) throws IOException {String fileName = "src/main/resources/towns.txt";File file = new File(fileName);CharSink chs = Files.asCharSink(file, Charsets.UTF_8, FileWriteMode.APPEND);chs.write("Žilina\n");}}
在示例中,我们使用 Guava 的CharSink类将其附加到文件中。
CharSink chs = Files.asCharSink(file, Charsets.UTF_8, FileWriteMode.APPEND);
Files.asCharSink()的第三个参数指定文件写入模式; 使用FileWriteMode.APPEND选项打开文件进行写入。
Java 使用 Apache Commons IO 附加到文件
在最后一个示例中,我们使用 Apache Commons IO 附加到文件。
<dependency><groupId>commons-io</groupId><artifactId>commons-io</artifactId><version>2.5</version></dependency>
我们需要这种依赖项。
JavaAppendFileApacheCommons.java
package com.zetcode;import java.io.File;import java.io.IOException;import java.nio.charset.StandardCharsets;import org.apache.commons.io.FileUtils;public class JavaAppendFileApacheCommons {public static void main(String[] args) throws IOException {String fileName = "src/main/resources/towns.txt";File file = new File(fileName);FileUtils.writeStringToFile(file, "Žilina", StandardCharsets.UTF_8, true);}}
我们使用FileUtils.writeStringToFile()方法将其附加到文件中。 最后一个append参数确定是否附加到文件。
在本教程中,我们展示了如何使用内置工具和第三方库在 Java 中附加文件。
您可能也对以下相关教程感兴趣: Java 教程, Java 列表目录内容, Java FileWriter教程, Java 文件时间 ,用 Java8 的StringJoiner连接字符串,Google Guava 简介,用 Java 过滤列表或 Android 教程。
