FileOutputStream文件字节输出流

一.概念

以内存为基准,把内存中的数据以字节的形式写出到文件中

二.构造器

public FileOutputStream(File file)创建字节输出流管道与源文件对象接通


public FileOutputStream(String filepath)创建字节输出流管道与源文件路径接通


public FileOutputStream(File file,boolean append)创建字节输出流管道与源文件对象接通,可追加数据


public FileOutputStream(String filepath,boolean append)创建字节输出流管道与源文件路径接通,可追加数据

三.方法

public void write(int a)写一个字节出去


public void write(byte【】buffer)写一个字节数组出去


public void write(byte【】buffer, int pos, int len)写一个字节数组的一部分出去。


public void close()throws IOException关闭流。

四.代码

1.代码

package org.example;

import java.io.*;

public class day05 {
    public static void main(String[] args) throws IOException {
        final FileOutputStream os = new FileOutputStream("d:/temp/day05/test.txt");
        final byte[] bytes = "我们在一起".getBytes();
        os.write(bytes);
    }
}

2.缺点

每次执行代码都会把文件中存的内容清空,比如test.txt文件中存着有内容,执行代码后,之前的内容就消失了,变成了我们写入的内容

3.解决方法

在输出流后面追加true

package org.example;

import java.io.*;

public class day05 {
    public static void main(String[] args) throws IOException {
        final FileOutputStream os = new FileOutputStream("d:/temp/day05/test.txt",true);
        final byte[] bytes = "你们还好吗".getBytes();
        os.write(bytes);
    }
}

如果想换行:os.write("\r\n".getBytes());

package org.example;

import java.io.*;

public class day05 {
    public static void main(String[] args) throws IOException {
        final FileOutputStream os = new FileOutputStream("d:/temp/day05/test.txt",true);
        final byte[] bytes = "你们还好吗".getBytes();
        os.write(bytes);
        os.write("\r\n".getBytes());
    }
}

### 回答1: 使用文件字节输入文件字节输出可以实现文件的复制。具体步骤如下: 1. 创建文件字节输入对象,用于读取源文件。 2. 创建文件字节输出对象,用于写入目标文件。 3. 定义一个字节数组,用于存储读取的数据。 4. 使用循环读取源文件中的数据,并将读取的数据写入目标文件中。 5. 关闭文件字节输入文件字节输出。 示例代码如下: ```java import java.io.*; public class FileCopy { public static void main(String[] args) { String sourceFilePath = "source.txt"; // 源文件路径 String targetFilePath = "target.txt"; // 目标文件路径 try { // 创建文件字节输入对象 FileInputStream fis = new FileInputStream(sourceFilePath); // 创建文件字节输出对象 FileOutputStream fos = new FileOutputStream(targetFilePath); // 定义一个字节数组,用于存储读取的数据 byte[] buffer = new byte[1024]; // 使用循环读取源文件中的数据,并将读取的数据写入目标文件中 int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } // 关闭文件字节输入文件字节输出 fis.close(); fos.close(); System.out.println("文件复制成功!"); } catch (IOException e) { e.printStackTrace(); } } } ``` ### 回答2: 文件复制就是将源文件的内容复制到目标文件中,Java中可以使用文件字节输入文件字节输出来实现文件的复制。 文件字节输入用于读取文件数据,文件字节输出用于写入数据到文件中。系统会根据输入输出的位置进行数据的传输。文件字节输入文件字节输出都是字符,但是操作的是二进制数据,因此可以复制各种类型的文件,如文本文件、音频文件、视频文件等。 下面是使用文件字节输入文件字节输出实现文件复制的步骤: 1. 创建文件输入输出,指定源文件和目标文件的路径。 FileInputStream fis = new FileInputStream("sourceFilePath"); FileOutputStream fos = new FileOutputStream("targetFilePath"); 2. 根据文件输入创建字节输入对象,根据文件输出创建字节输出对象。 BufferedInputStream bis = new BufferedInputStream(fis); BufferedOutputStream bos = new BufferedOutputStream(fos); 3. 使用循环读取输入中的数据,并写入到输出中。 byte[] buffer = new byte[1024]; int len; while ((len = bis.read(buffer)) != -1) { bos.write(buffer, 0, len); } 4. 关闭输入输出。 bis.close(); bos.close(); 使用文件字节输入文件字节输出实现文件复制,可以保证文件内容的完整性,且具有较高的传输速度。但是需要注意,对于大文件的复制,要避免一次将整个文件读取到内存中,应当使用缓冲区进行分段读取。同时,还需要处理异常,确保程序的稳定性。 ### 回答3: 文件的复制是计算机操作中的常见需求,通过使用文件字节输入文件字节输出可以实现文件的复制。下面是实现文件复制的具体步骤: 1. 创建文件字节输入文件字节输出对象,并分别指定源文件和目标文件的路径。 ```java InputStream fis = new FileInputStream("source.txt"); OutputStream fos = new FileOutputStream("target.txt"); ``` 2. 读取源文件的内容,并将读取到的内容写入目标文件中。 ```java byte[] buffer = new byte[1024]; int len; while ((len = fis.read(buffer)) != -1) { fos.write(buffer, 0, len); } ``` 3. 刷新输出,并关闭输入输出。 ```java fos.flush(); fis.close(); fos.close(); ``` 通过以上步骤,即可实现文件复制功能。需要注意的是,复制文件时需要保证目标文件的路径是正确的,否则可能出现文件写入失败的情况。同时,读取和写入的缓冲区大小需要根据实际需求进行调整,过大或过小都可能影响到复制效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值