美文网首页
Java—字节流读写数据

Java—字节流读写数据

作者: 夜希辰 | 来源:发表于2021-05-09 17:16 被阅读0次

学习笔记:字节流。
字节流抽象基类:

- public abstract class InputStream implements Closeable {}
//OutputStream是所有字节输入流的超类
- public abstract class OutputStream implements Closeable, Flushable {}
//OutputStream是所有字节输出流的超类
  • FileOutputStream:文件输出流将数据写如File,FileOutputStream是OutputStream子类。
    public FileOutputStream(String name):创建文件输出流以指定的名称写入文件
  • FileInputStream :从文件中获取输入字节,FileInputStream是InputStream子类。
    public FileInputStream(String name)

目录:
一、字节流写数据
1、字节流写数据的三种方式
2、字节流写数据如何换行,如何追加写入
二、字节流读数据
1、字节输入流读数据:一次读一个字节数据
2、字节输入流复制文本文件
3、字节数组流读数据:一次读一个字节数组数据
4、字节缓冲流

一、字节流写数据

1、字节流写数据的三种方式
public class FileOutputStreamDemo {
    public static void main(String[] args) throws IOException {
        //public FileOutputStream(String name):创建我呢见输出流以指定的名称写入文件
        FileOutputStream fos = new FileOutputStream("idea_test\\fos.txt");//idea_test为当前模块
        //public void write(int b)
        fos.write(97);

        //public void write(byte b[])
        byte[] bys = {97,98,99,100};
        fos.write(bys);

        byte[] bytes = "abcdefghigk".getBytes();
        fos.write(bytes,2,3);//cde
        //最后都要释放资源
        //public void close():关闭此文件输出流并释放与此流相关联的任何系统资源
        fos.close();
    }
}
2、字节流写数据如何换行,如何追加写入

范例

二、字节流读数据

1、字节输入流读数据
  • public int read()
import java.io.*;

public class FileInputStreamDemo {
    public static void main(String[] args) throws IOException {
       //1、创建字节输入流对象
        FileInputStream fis = new FileInputStream("idea_test\\fos.txt");

        //2、读数据
        /*
        //第一次读取数据
        int read = fis.read();
        System.out.println(read);

        //第二次读取数据
         read = fis.read();
        System.out.println(read);
        */
        //2、读数据 优化上面代码
        /*
        fis.read()读数据
        by = fis.read():把读取到的数据赋值给by
        by != -1:判断读取到的数据是否是-1
         */
        int by;
        while((by = fis.read()) != -1){
            System.out.println((char)by);
        }
        
        
        //3、释放资源
        fis.close();
    }
}
2、字节输入流复制文本文件
public class FileDemo {
    public static void main(String[] args) throws IOException {
       //1、创建字节输入流对象
        FileInputStream fis = new FileInputStream("F:\\02-silu\\KETTLE_TEST\\java.txt");
        //根据目的地创建字节输出流对象
        FileOutputStream fos = new FileOutputStream("idea_test\\java.txt");

        //读写数据,复制文本文件
        int by;
        while((by = fis.read()) != -1){
            fos.write(by);
        }

        //释放资源
        fis.close();
        fos.close();
    }
}
3、字节数组流读数据:一次读一个字节数组数据
import java.io.*;

public class InterfaceDemo {
    public static void main(String[] args) throws IOException {
       //1、创建字节输入流对象
        FileInputStream fis = new FileInputStream("F:\\02-silu\\KETTLE_TEST\\java.txt");
        FileInputStream fis1 = new FileInputStream("F:\\02-silu\\KETTLE_TEST\\java.txt");

        //读数据:方法一
        byte[] bys = new byte[5];
        //第一次读数据
        int read = fis.read(bys);
        System.out.println(read);
        System.out.println(new String(bys,0,read));
        //第二次读数据
        read = fis.read(bys);
        System.out.println(read);
        System.out.println(new String(bys,0,read));
        //第三次读数据
        read = fis.read(bys);
        System.out.println(read);
//        System.out.println(new String(bys,0,read));

        //第四次读数据
        read = fis.read(bys);
        System.out.println(read);
        System.out.println("------------------");

        // //读数据:方法二。读数据改进
        byte[] b = new byte[1024];//1024及整数倍
        int len;
        while((len = fis1.read(b)) != -1){
            System.out.print(new String(b,0,len));
        }

        //释放资源
        fis.close();
        fis1.close();
    }
}
4、字节缓冲流
public class BufferedInputStreamDemo {
    public static void main(String[] args) throws IOException {
       //1、创建字节缓冲流对象
        FileInputStream fis = new FileInputStream("F:\\02-silu\\KETTLE_TEST\\java.txt");
        BufferedInputStream bis = new BufferedInputStream(fis);
       //创建字节缓冲流对象,方式2
        BufferedInputStream bis2 = new BufferedInputStream(new FileInputStream("F:\\02-silu\\KETTLE_TEST\\java.txt"));

        fis.close();
        bis.close();
    }
}

相关文章

  • Java—字节流读写数据

    学习笔记:字节流。字节流抽象基类: FileOutputStream:文件输出流将数据写如File,FileOut...

  • Java之IO(四)缓冲流

    之前学习的字节流字符流,都可以读写文件对数据进行操作,当读写数据量很大时,读取的速度会很慢影响效率,那么Java中...

  • Android 基础之文件和数据库

    Java 文件流 1. 字节流文件操作(读写)的代码 2. 字符流文件操作(读写)的代码 3. 按行(读写)的代码...

  • IO流简介

    io流的作用:读写设备上的数据,硬盘文件、内存、键盘、网络.... io流分类:输入流和输出流,字节流和字符流 字...

  • Java总结IO篇之字节流与字符流转化

    本篇接上篇:Java中的字符流,流的读写的细节参考上篇本篇讲述字节流相关话题,包括字节流的读取与写出,字节流转化为...

  • Java(流式输入、输出)

    Java两种基本的流,输入流和输出流。顺序读写方式。 相对端点,划分成节点流和过滤流;根据数据单位,分为字节流和字符流。

  • IO

    分类 输入流、输出流 数据 --> (单/双)管道 --> 输入数据 -->程序 字节流、字符流 每次读写 以字节...

  • java学习笔记#5-IO流

    字节流 InputStream、OutputStream抽象了程序的读写数据方式。EOF = END ,读到-1就...

  • Sharding-JDBC-Java配置

    JAVA配置 配置示例 数据分片 读写分离 数据分片 + 读写分离 数据分片 + 数据脱敏 治理 配置项说明 数据...

  • Java IO 流详解

    Java Io 类图结构 命名特点: 字节流:读写的都是字节。输入流:[xxx]InputStream输出流:[x...

网友评论

      本文标题:Java—字节流读写数据

      本文链接:https://www.haomeiwen.com/subject/qeymdltx.html