Java FileOutputStream

Java FileOutputStream 教程显示了如何使用FileOutputStream类写入 Java 中的文件。

Java FileOutputStream

FileOutputStream是用于将数据写入FileFileDescriptor的输出流。 FileOutputStreamOutputStream的子类,它接受输出字节并将其发送到某个接收器。 在FileOutputStream的情况下,接收器是文件对象。

Java FileOutputStream构造函数

这些是FileOutputStream构造函数:

  • FileOutputStream(File file)-创建文件输出流以写入File对象。
  • FileOutputStream(File file, boolean append)-创建文件输出流以写入File对象; 允许追加模式。
  • FileOutputStream(FileDescriptor fdObj)-创建文件输出流以写入指定的文件描述符。
  • FileOutputStream(String name)-创建文件输出流以写入具有指定名称的文件。
  • FileOutputStream(String name, boolean append)-创建文件输出流以写入具有指定名称的文件; 允许追加模式。

Java FileOutputStream关闭

FileOutputStream's close()方法关闭文件输出流,并释放与此流关联的所有系统资源。 在我们的示例中,我们使用 try-with-resources 语句,该语句确保在语句末尾关闭每个资源。

Java FileOutputStream写入

FileOutputStream使用以下写入方法写入字节:

  • write(byte[] b)-将字节数组写入文件输出流。
  • write(byte[] b, int off, int len)-从指定的字节数组开始将 len 个字节从 offset 偏移量写入文件输出流。
  • write(int b)-将一个字节写入文件输出流。

Java FileOutputStream示例

以下示例使用FileOutputStream将文本写入文件。

FileOutputStreamEx.java

package com.zetcode;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamEx {

    public static void main(String[] args) throws FileNotFoundException, IOException {

        String fileName = "/home/janbodnar/tmp/newfile.txt";

        try (FileOutputStream fos = new FileOutputStream(fileName)) {

            String text = "Today is a beautiful day";
            byte[] mybytes = text.getBytes();

            fos.write(mybytes);
        }
    }
}

该代码示例将一行写入文件。

try (FileOutputStream fos = new FileOutputStream(fileName)) {

FileOutputStream构造函数采用字符串作为参数; 它是我们写入的文件名。 完成编写后,我们使用 try-with-resources 构造来清理资源。

String text = "Today is a beautiful day";
byte[] mybytes = text.getBytes();

FileOutputStream将字节写入文件; 我们使用getBytes()方法从字符串中获取字节。

fos.write(mybytes);

字节被写入文件。

$ cat newfile.txt 
Today is a beautiful day

我们使用cat命令显示文件的内容。

Java FileOutputStream追加到文件

使用FileOutputStream可以将数据附加到文件中。 追加的典型用法是日志记录。

FileOutputStreamAppend.java

package com.zetcode;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutputStreamAppend {

    public static void main(String[] args) throws FileNotFoundException, IOException {        

        String fileName = "/home/janbodnar/tmp/newfile.txt";

        try (FileOutputStream fos = new FileOutputStream(fileName, true)) {

            String text = "Today is a beautiful day";
            byte[] mybytes = text.getBytes();

            fos.write(mybytes);
        }
    }
}

该代码示例将文本追加到文件。

try (FileOutputStream fos = new FileOutputStream(fileName, true)) {

FileOutputStream的第二个参数表示我们将附加到文件中。

Java FileOutputStream指定编码

FileWriter类是用于编写字符文件的 Java 便利类,它有一个严重的限制:它使用默认编码,并且不允许我们显式指定编码。 如果必须设置编码,则可以使用OutputStreamWriterFileOutputStream

FileOutputStreamEncoding.java

package com.zetcode;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

public class FileOutputStreamEncoding {

    public static void main(String[] args) throws FileNotFoundException, IOException {

        String fileName = "/home/janbodnar/tmp/newfile.txt";

        FileOutputStream fos = new FileOutputStream(fileName);

        try (OutputStreamWriter osw =  new OutputStreamWriter(fos, 
                StandardCharsets.UTF_8)) {

            String text = "Сегодня был прекрасный день.";

            osw.write(text);
        }
    }
}

该示例使用OutputStreamWriter将文本写入文件。 第二个参数是要使用的字符集。

$ cat newwfile.txt 
Сегодня был прекрасный день.

我们显示文件的内容。

在本教程中,我们介绍了 Java FileOutputStream类。

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

Java 教程