Java FileOutputStream
类
原文:https://www.studytonight.com/java-file-io/java-fileoutputstream-class
在本教程中,我们将学习 Java 中的FileOutputStream
。这个类是一个输出流,用于将数据写入文件。
句法
这是FileOutputStream
类的语法声明,我们可以看到这个类继承了OutputStream
它意味着我们可以使用FileOutputStream
类的一个对象调用这个类的所有方法。
public class FileOuputStream extends OutputStream
构造器
下表给出了不同的构造器:
构造器 | 描述 |
---|---|
FileOutputStream(File file) |
创建一个文件输出流,写入由指定的File 对象表示的文件。 |
FileOutputStream(FileDescriptor fdObj) |
创建要写入指定文件描述符的文件输出流,该文件描述符表示与文件系统中实际文件的现有连接。 |
FileOutputStream(File file, boolean append) |
创建一个文件输出流,写入由指定的File 对象表示的文件。 |
FileOutputStream(String name) |
创建文件输出流,以写入具有指定名称的文件。 |
FileOutputStream(String name, boolean append) |
创建文件输出流,以写入具有指定名称的文件。 |
方法
这些是文件输出流类支持的方法。
方法 | 描述 |
---|---|
protected void finalize() |
此方法用于清理与文件输出流的连接。 |
void write(byte[] arr) |
该方法用于将ary.length 字节从字节数组写入文件输出流。 |
void write(byte[] arr, int off, int len) |
该方法用于将从偏移量off 开始的字节数组中的len 字节写入文件输出流。 |
void write(int b) |
此方法用于将指定的字节写入文件输出流。 |
FileChannel getChannel() |
此方法用于返回与文件输出流关联的文件通道对象。 |
FileDescriptor getFD() |
此方法用于返回与流关联的文件描述符。 |
void close() |
此方法用于关闭文件输出流。 |
write()
方法示例:
在下面的程序中,我们将给定的文本转换为字节数组,因为write()
方法只接受字节数组。要写这个字节数组,我们需要一个FileOutputStream
类的对象,我们在这个对象上调用write()
方法写入文件。
import java.io.FileOutputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
try
{
byte arr[] = "Hello studytonight".getBytes();
FileOutputStream fout=new FileOutputStream("E:\\studytonight\\myfile.txt");
fout.write(arr);
fout.close();
System.out.println("Text written to the file successfully.");
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
控制台输出:
文本成功写入文件。
文件输出:
你好,今晚学习
用于追加的文件输出流构造器示例:
下面给出了一个例子,我们用两个参数实现文件输出流:1)文件名的字符串值,2)追加的布尔值。这个例子将在我们每次执行程序时给定的文本附加到文件中。
import java.io.FileOutputStream;
import java.io.IOException;
public class StudyTonight
{
public static void main(String[] args) throws IOException
{
try
{
//second parameter is for append
FileOutputStream fout=new FileOutputStream("E:\\studytonight\\myfile.txt", true);
byte arr[] = "Hello studytonight\n".getBytes();
fout.write(arr);
fout.close();
System.out.println("Text written to the file successfully.");
}
catch(Exception e)
{
System.out.println(e.toString());
}
}
}
文本成功写入文件。
当我们执行上述程序三次时,myfile.txt
中的数据将如下所示:
Hello studytonight
Hello studytonight
Hello studytonight
结论
在本文中,我们学习了如何使用OutputStream
类的write()
方法将数据写入文件。此方法将字节数组中的字节写入文件输出流。