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

mail结论

在本文中,我们学习了如何使用OutputStream 类的write()方法将数据写入文件。此方法将字节数组中的字节写入文件输出流。