跳转至

Java 附加到文件

原文:http://zetcode.com/articles/javaappendtofile/

Java 附加到文件教程显示了如何用 Java 附加到文件。 我们使用FileWriterFileOutputStreamFilesRandomAccessFile,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是用于将数据写入FileFileDescriptor的输出流。 它带有一个可选的第二个参数,该参数确定是否将数据附加到文件中。

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 教程



回到顶部