字节流

前言:大家有没有想过我们平时看的视频,
音频,图片都是以什么形式存储的.它们是什么形式存储的呢?


字节流 又分两种一个是 输出 一个为 输入 下面是所有输出输入流 的顶级父类。


字节输出流OutputStream
字节输入流InputStream


FileOutputStrean类(输出类)

输出流的子类 FileOutputStream类 为一个文件输出流.

close方法:关闭此流的释放的资源,别浪费内存了哦。
write方法(有三种用法) 下面我给大家演示一下:


package com.kjzz.pojo;

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

public class day1 {
    public static void main(String[] args) throws IOException {
        // a 
        File file = new File("A.txt");
        FileOutputStream fos = new FileOutputStream(file);
        // 第一种 写出数据
        fos.write(97); // a 
        fos.write(98); // b
        // 关闭资源
        fos.close();

        // b
        FileOutputStream fo= new FileOutputStream("B.txt");
        // 第二种 字节数组
        byte [] b = "可否思否".getBytes();
        fo.write(b); // 可否思否
        // 关闭资源
        fo.close();

        // c
        // 使用文件名称创建流对象
        FileOutputStream f = new FileOutputStream("C.txt");
        byte [] c = "abQAQ".getBytes();
        // 第三种 选择字节数组di2个下标后面三个数
        f.write(c,2,3); // QAQ
        // 关闭资源
        f.close();
        
    }
}

总结:1.流操作完毕记得用 close方法 释放系统内存。2. write 第三种用法第2个是下标 第3个是选择后面几位数。


FileOutStream数据是否追写 + 换行操作怎么使用。

1.是否追加使用就是在FileOutStream后加上 false(默认)ture(追加)。

2.换行操作在 Windows系统中 \r\n 是换行.

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

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

        FileOutputStream fos = new FileOutputStream("AA.txt",true);

        byte [] b = "abc".getBytes();
        
        fos.write(b);
        fos.write("\r\n".getBytes());
       
        // 关闭资源
        fos.close();
        
    }
}
输出结果:
abc(注意换行)
abc(二次运行)
abc(三次运行)    

FileInputStream类(输入类)

是一个文件输入流, 文件中读取字节。

他的方法:

read :字节数组读取数据

import java.io.FileInputStream;
import java.io.IOException;

public class day3 {
    public static void main(String[] args) {
        try {
            // 文件名创建 流对象
            FileInputStream fis= new FileInputStream("BB.txt");
            // 定义变量 作为一个有效单位 0
            int len;
            // 选择单位 
            byte [] b = new byte [2];
            
            while ( (len = fis.read(b)) != -1 ) {
                System.out.println(new String(b,0,len));
            }
            
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
输出结果:
ab
cd
e

总结:选择一个0的常量 和 使用while循环。

InputStream输出流(读) OutputStream输入流(写)。


嘻嘻硕
27 声望12 粉丝

想当一只天然呆的鸭qwq