Java字节流

目录

IO流概述和分类

IO流概述:

IO流分类:

字节流写数据

字节流写数据的方法

字节流读数据


IO流概述和分类

IO流概述:

       IO:输入/输出(Input/Output)

       流:是一种抽象概念,是对数据传输的总称。也就是说数据在设备间的传输称为流,流的本质是数据传输

       IO流就是用来处理设备间数据传输问题的

IO流分类:

      按照数据的流向

      输入流:读数据    输出流:写数据

      按照数据类型分类:

      字节流:字节流入流;字节输出流

      字符流:字符输入流;字符输出流

如果数据通过Windows自带的记事本打开,还可以读得懂里面的内容,就使用字符流,否则使用字节流,不知道该使用那种类型的流,就使用字节流。

字节流写数据

字节流抽象基类

        InputStream:这个抽象类是表示字节输入流的所有类的超类

       OutputStream:这个抽象类是表示字节输入流的所有类的超类

       子类名特点:子类名称都是以其父类名作为子类吗的后缀

使用字节输出流写数据的步骤

       创建字节输出流对象(调用系统功能创建了文件,创建字节输出流对象,让字节输出流对象指向文件)

       调用字节输出流对象的写数据方法

       释放资源(关闭此文件输出流并释放与此流相关联的任何系统资源)

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

public class FileOutputStreamDemo01 {
    public static void main(String[] args) throws IOException {
        //创建字节输出流对象
        FileOutputStream fos = new FileOutputStream("E:\\Java_Code01\\fos.txt");
        //void write(int b):将指定的字节写入此文件输出流
        fos.write(96);
        fos.write(97);
        fos.write(98);
        //释放资源
        fos.close();
    }
}

字节流写数据的方法

方法名 说明
void write(int b) 将指定的字节写入此文件输出流(一写一个字节数据)
void write(byte[] b) 将b.length字节从指定的字节数组写入此文件输出流(一次写一个字节数组数据)
void write(byte[] b,int off,int len) 将len字节从指定的字节数组开始,从偏移量off开始写入此文件输出流(一次写一个字节数组的部分数据)

字节流读数据

一次读一个字节数据

       FileInputStream:从文件系统中的文件获取输入字节

       FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中的路径名name命名

使用字节输入流读数据的步骤

      1.创建字节输入流对象

      2.调用字节输入流对象的读数据方法

      3.释放资源

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

public class FileInputStreamDemo01 {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象
        FileInputStream fis = new FileInputStream("E:\\Java_Code01\\fos.txt");
        //调用字节输入流读数据的方法 int read():从该输入流读取一个字节的数据
        int read = fis.read();
        System.out.println(read);
        System.out.println((char)read);
        //释放资源
        fis.close();
    }
}

一次读一个字节数组的数据

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

public class FileInputStreamDemo {
    public static void main(String[] args) throws IOException {
        //创建字节输入流对象
        FileInputStream fis = new FileInputStream("E:\\Java_Code01\\fos.txt");
        //调用字节输入流对象的读取方法
        byte[] bys = new byte[1024];//1024及其整数倍
        int len;
        while((len = fis.read(bys))!=-1){
            System.out.println(new String(bys,0,len));
        }
        //释放资源
        fis.close();
    }
}

上一篇:安装protoc


下一篇:Android 应用读写设备节点