I/O系列教材 (三)- Java 字节流 InputStream OutputStream

InputStream字节输入流 
OutputStream字节输出流 
用于以字节的形式读取和写入数据

步骤1:ASCII码 概念
步骤2:以字节流的形式读取文件内容
步骤3:以字节流的形式向文件写入数据
步骤4:练习-写入数据到文件
步骤5:答案-写入数据到文件
步骤6:练习-拆分文件
步骤7:答案-拆分文件
步骤8:练习-合并文件
步骤9:答案-合并文件

步骤 1 : ASCII码 概念

 

步骤 2 : 以字节流的形式读取文件内容

InputStream是字节输入流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileInputStream 是InputStream子类,以FileInputStream 为例进行文件读取

package stream;

  

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

  

public class TestStream {

  

    public static void main(String[] args) {

        try {

            //准备文件lol.txt其中的内容是AB,对应的ASCII分别是65 66

            File f =new File("d:/lol.txt");

            //创建基于文件的输入流

            FileInputStream fis =new FileInputStream(f);

            //创建字节数组,其长度就是文件的长度

            byte[] all =new byte[(int) f.length()];

            //以字节流的形式读取文件所有内容

            fis.read(all);

            for (byte b : all) {

                //打印出来是65 66

                System.out.println(b);

            }

             

            //每次使用完流,都应该进行关闭

            fis.close();

              

        catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

          

    }

}

步骤 3 : 以字节流的形式向文件写入数据

OutputStream是字节输出流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。
FileOutputStream 是OutputStream子类,以FileOutputStream 为例向文件写出数据

注: 如果文件d:/lol2.txt不存在,写出操作会自动创建该文件。 
但是如果是文件 d:/xyz/lol2.txt,而目录xyz又不存在,会抛出异常

以字节流的形式向文件写入数据

package stream;

 

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

 

public class TestStream {

 

    public static void main(String[] args) {

        try {

            // 准备文件lol2.txt其中的内容是空的

            File f = new File("d:/lol2.txt");

            // 准备长度是2的字节数组,用88,89初始化,其对应的字符分别是X,Y

            byte data[] = { 8889 };

 

            // 创建基于文件的输出流

            FileOutputStream fos = new FileOutputStream(f);

            // 把数据写入到输出流

            fos.write(data);

            // 关闭输出流

            fos.close();

             

        catch (IOException e) {

            // TODO Auto-generated catch block

            e.printStackTrace();

        }

 

    }

}


更多内容,点击了解: https://how2j.cn/k/io/io-bytestream/340.html

posted @ 2020-03-17 09:44  Lan_ht2  阅读(76)  评论(0编辑  收藏  举报