Java 附加到文件教程显示了如何用 Java 附加到文件。 我们使用FileWriter
,FileOutputStream
,Files
,RandomAccessFile
,Google Guava 和 Apache Commons IO。
附加到文件通常在日志记录中使用。
在示例中,我们将文本附加到文件中。
towns.txt
Bratislava
Moldava
Košice
Trenčín
Preš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 中附加文件。