Java IO流(一)-字节流输出流

1 IO流的介绍

1.1 为什么要学习IO流

  • 通过变量,数组,或者集合存储数据
    • 都是不能永久化存储 , 因为数据都是存储在内存中
    • 只要代码运行结束,所有数据都会丢失
  • 使用IO流
    • 1,将数据写到文件中,实现数据永久化存储
    • 2,把文件中的数据读取到内存中(Java程序)

1.2 什么是IO流

  • I 表示intput ,是数据从硬盘进内存的过程,称之为读。
  • O 表示output ,是数据从内存到硬盘的过程。称之为写
  • IO的数据传输,可以看做是一种数据的流动,按照流动的方向,以内存为参照物,进行读写操作
    • 简单来说:内存在读,内存在写

1.3 IO流的分类

  • 按照流向区分
    • 输入流 : 用来读数据
    • 输出流 : 用来写数据
  • 按照类型区分
    • 字节流
    • 字符流
  • 注意 :
    • 字节流可以操作任意文件
    • 字符流只能操作纯文本文件
    • 用windows记事本打开能读的懂,那么这样的文件就是纯文本文件。

2 字节流输出流

2.1 字节输出流入门

  • FileOutputStream类 :
    • OutputStream有很多子类,我们从最简单的一个子类开始。
    • java.io.FileOutputStream 类是文件输出流,用于将数据写出到文件
  • 构造方法 :
    • public FileOutputStream(File file):创建文件输出流以写入由指定的 File对象表示的文件。
    • public FileOutputStream(String name): 创建文件输出流以指定的名称写入文件。
package javaio.os.demo1;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class FileOutStreamDemo {
    public static void main(String[] args) throws FileNotFoundException {
        //使用File对象创建流对象
        File file =new File("abc.txt");
        FileOutputStream fos = new FileOutputStream(file);
        // 使用文件名称创建流对象
        FileOutputStream fos1 =new FileOutputStream("bbbb.txt");
    }
}

  • 字节输出流写数据快速 入六 :
    • 创建字节流输出对象。
    • 写数据
    • 释放资源
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/*
    字节输出流写数据快速入门 :
        1 创建字节输出流对象。
        2 写数据
        3 释放资源
 */
public class FileOutStreamDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream(new File("aaa.txt"));
        // 写数据
        // 写到文件中就是以字节形式存在的
        // 只是文件帮我们把字节翻译成了对应的字符 , 方便查看
        fos.write(98);
        fos.write(99);
        fos.close();
    }
}

2.2 字节输出流写数据的方法

字节流写数据的方法

  • 1 void write(int b) 一次写一个字节数据
  • 2 void write(byte[] b) 一次写一个字节数组数据
  • 3 void write(byte[] b, int off, int len) 一次写一个字节数组的部分数据
package javaio.os.demo2;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

public class FileOutStreamDemo2 {
    public static void main(String[] args) throws IOException {
        // 创建字节输出流对象
        FileOutputStream fos = new FileOutputStream(new File("aaa.txt"));
        // 写数据
        fos.write(98);
        fos.write(99);

        byte[] bys={65,66,67,68};
        fos.write(bys);
        //释放资源
        fos.close();
    }
}

2.3写数据的换行和追加写入

/*
    字节流写数据的换行和追加写入

    1 字节流写数据如何实现换行呢?
        写完数据后,加换行符
        windows : \r\n
        linux : \n
        mac : \r

    2 字节流写数据如何实现追加写入呢?
        通过构造方法 : public FileOutputStream(String name,boolean append)
        创建文件输出流以指定的名称写入文件。如果第二个参数为true ,不会清空文件里面的内容
 */
public class FileOutStreamDemo1 {
    public static void main(String[] args) throws IOException {
        // 创建字节输出流对象
        FileOutputStream fos = new FileOutputStream("aaa.txt");
        fos.write(97);
        // 因为字节流无法写入一个字符串 , 把字符串转成字节数组写入
        fos.write("\r\n".getBytes());
        fos.write(98);
        fos.write("\r\n".getBytes());
        fos.write(99);
        fos.write("\r\n".getBytes());

        //释放资源
        fos.close();
    }
}
public class FileOutStreamDemo2 {
    public static void main(String[] args) throws IOException {
        // 创建字节输出流对象
        // 追加写数据
        // 通过构造方法 : public FileOutputStream(String name,boolean append) : 追加写数据
        FileOutputStream fos = new FileOutputStream("aaa.txt" , true);

        // void write​(int b)	一次写一个字节数据
        fos.write(97);
        // 因为字节流无法写入一个字符串 , 把字符串转成字节数组写入
        fos.write("\r\n".getBytes());
        fos.write(98);
        fos.write("\r\n".getBytes());
        fos.write(99);
        fos.write("\r\n".getBytes());

        // 释放资源
        fos.close();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值