Java IO流(二)FileOutputStream

本文详细介绍了Java中的FileOutputStream类,用于文件数据的写入操作。内容包括FileOutputStream的创建、写入原理、使用步骤及常用方法。通过示例展示了如何写入单个字节、字节数组以及如何追加写入。同时,还提供了复制文件的代码示例,演示了如何使用FileInputStream和FileOutputStream实现文件内容的复制。
摘要由CSDN通过智能技术生成

简介

FileOutputStream主要用于写入数据或者文件,如果文件不存在会主动创建文件,适用于写入 raw bytes,如果写入字符应该使用FileWriter。

写入原理

Java程序无法直接写入到磁盘实际调用过程:
Java程序->JVM->OS->OS写入数据方法->写入数据

使用步骤

1.创建对象

通过构造函数创建对象,确定写入文件位置

2.写入数据

通过 write方法把数据写入文件

3.释放资源

释放内存,提高程序效率

构造方法

FileOutputStream(File file)

从一个文件对象中创建

FileOutputStream(String name)

从一个字符串文件名创建

FileOutputStream(File file, boolean append)

追加写/续写

常用方法

// 写入一个字节
write(int b)
// 写入一个字节数组
write(byte[] b)
// 从传入的数组b中,指定起始位置和长度写入
write(byte[] b, int off, int len)
//释放资源
close()

代码

public class Demo05 {
    public static void main(String[] args) throws IOException {
        //1.创建对象
        FileOutputStream fileOutputStream = new FileOutputStream("a.txt");
        //2.1写入一个字节
        fileOutputStream.write(97);

        //2.2 写入一个字节数组
        byte[] bytes = {65,66,67,68};
        fileOutputStream.write(bytes);

        //2.3 write(byte[] b, int off, int len)
        fileOutputStream.write(bytes, 1,1);

        //3.释放资源
        fileOutputStream.close();
    }
}

扩展

可以通过string类提供的getbytes方法,把一个字符串转换为字节数组。

 fileOutputStream.write("hello world".getBytes(StandardCharsets.UTF_8));

复制文件

public class Demo08 {
    public static void main(String[] args) throws IOException {

        FileInputStream fileInputStream = new FileInputStream("a.txt");
        FileOutputStream outputStream = new FileOutputStream("b.txt");

        byte[] bytes = new byte[1024];
        int read;

        while ((read = fileInputStream.read(bytes)) != -1)
        {
            outputStream.write(bytes,0,read);
        }

        fileInputStream.close();
        outputStream.close();

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值