原文:http://zetcode.com/java/fileoutputstream/
Java FileOutputStream教程显示了如何使用FileOutputStream类写入 Java 中的文件。
Java FileOutputStream
FileOutputStream是用于将数据写入File或FileDescriptor的输出流。 FileOutputStream是OutputStream的子类,它接受输出字节并将其发送到某个接收器。 在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的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.txtToday 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 便利类,它有一个严重的限制:它使用默认编码,并且不允许我们显式指定编码。 如果必须设置编码,则可以使用OutputStreamWriter和FileOutputStream。
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类。 您可能也对相关教程感兴趣: Java FileInputStream教程, Java InputStream教程, Java 谓词教程, Java 文件时间, Java FileWriter教程, Java 附加到文件,用 Java 读取文本文件,用 Java 读写 ICO 图像 和 Java 教程。
