文件字节输出流FileOutputStream

文件字节输出流FileOutputStream

思路:

输入流:是相对于应用程序(Java应用程序)而言的,打开输出流就是打开应用程序到目的地(存放数据的文件)的通道,然后后续才可以对再通过该通道用写方法向这个目的地写入数据。

在这里插入图片描述

基本步骤:

1、指定将数据输出到的目的地(存放数据的文件)

2、创建指向该目的的输出流

3、将数据通过流写入

4、关闭输出流

​ 如果对写入的需求比较简单,就使用OutputStream类的子类FileOutputStream类就可以了。需要注意的是,如果写入到该文件的时候,如果该文件不存在,则会创建该文件。如果该文件已经存在,则默认会刷新该文件(清空)。

创建指向目的地的输出流:

FileOutputStream类构造方法:

FileOutputStream(String name);
FileOutputStream(File file);
FileOutputStream(String name,boolean append);
FileOutputStream(File file,boolean append);

可以直接指定文件名或者创建File类对象来创建输出流。

append:如果参数append取true,说明该文件能够追加,就不会被清空。如果参数append取false,说明该文件不能追加,每次写入该文件都会清洗(清空)。

同时也需要用IOException来捕获异常。

write方法以字节为单位向目的地写入数据:

使用FileOutputStream里的write方法向目的地写入数据:

void write(byte b[]);					//向目的地写入一个字节数组
void write(byte b[],int off,int len);	//向目的地写入一个长度为len的字节数组,从该数组的off位置										//开始

上手测试:

public class TestIO {
    public static void main(String[] args) {
        //1、指定输出的目的地
        File file = new File("test.txt");
        //2、新建想要向目的地写入的数据(字节数组)
        byte b[]="新年快乐".getBytes();
        try {
            //3、创建指向目的地的输出流
            FileOutputStream out = new FileOutputStream(file,true);
            //4、通过输出流向目的地写入数据
            out.write(b);
            //5、关闭缓冲区并且关闭输出流
            out.flush();
            out.close();
        } catch (IOException e) {//6、捕获异常
            e.printStackTrace();
        }
    }
}

总结:

  1. 指定目的地

    用File类对象或者文件名指定。

  2. 创建指向该目的地的输出流

    FileOutputStream创建输出流,可以添加参数append指定目的地文件是否能够追加,默认是false。

  3. 通过输出流向目的地写入数据

    write()方法将字节数组通过输出流写到目的地里。
    指定目的地文件是否能够追加,默认是false。

  4. 通过输出流向目的地写入数据

    write()方法将字节数组通过输出流写到目的地里。

  5. 关闭输出流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
io简介 File类 createNewFile() File.pathSwparator 与系统有关的路径分隔符,它被表示为一个字符串 windows为 分号";" File.pathSwparatorChar 与系统有关的路径分割符,它被表示为一个字符 File.separator 与系统有关的 默认名称分隔符 ,它被表示为一个字符串 windows为 斜杠"\" File.separatorChar 与系统有关的 默认名称分隔符 ,它被表示为一个字符 获取目录和文件 File.list() 返回String[] File.listFile() 返回File[] 字节 FileInputStream("文件路径") FileOutputStream(File file) 逐个读取 存入字节read() write() close() 字符 FileReader("文件路径") FileWriter("文件路径") 逐个读取 存入字符read() 无缓冲的输入、输出每一次读写都肯引发磁盘的读写操作,占用大量资源 缓冲(装饰器模式) 缓冲是一种装饰器类 可实现按规定字符数、按行等方式的高效读写 缓冲区的大写可指定 也可使用默认大小 FileInputStream fis = new FileInputStream("Car.java"); 装饰器类 in = new 装饰器类(fis); BufferedReader in = new BufferedReader(new FileReader("Car.java")); BufferedWriter out = new BufferedWriter(new FileReader("Car2.java")); 利用缓冲读取的时候是逐行读取 存入字符串 in.readLine() out.write("") out.newLine()写入分行符 需要即时写入的时候 调用 flush()方法,手动刷新缓冲 注意 关闭的时候也会自动刷新缓冲中的数据 字节转换为字符 InputStreamReader(System.in) 适配器模式的使用 其意图是将一个类的接口转换成客户希望的另外一个接口 数据 简单来说就是容许字节直接操作基本数据类型和字符串 DataInputStream out = new DataInputStream(new BufferedInputStream(new FileInputStream("数据存储文件路径"))) DataOutputStream out = new DataOutputStream(new BufferedOutputStream(new FileOutputStream("数据存储文件路径")))

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值