From 775fa94787b82ef3ed4181b5bef1050e2a0f9c35 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Tue, 11 Aug 2026 10:02:47 +0800 Subject: [PATCH] =?UTF-8?q?s-day09-=E4=BD=BF=E7=94=A8=E5=AD=97=E8=8A=82?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=B5=81=E4=B8=80=E6=AC=A1=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E5=AD=97=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- s-day09/src/com/inmind/io_in02/Demo06.java | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 s-day09/src/com/inmind/io_in02/Demo06.java diff --git a/s-day09/src/com/inmind/io_in02/Demo06.java b/s-day09/src/com/inmind/io_in02/Demo06.java new file mode 100644 index 0000000..231cfee --- /dev/null +++ b/s-day09/src/com/inmind/io_in02/Demo06.java @@ -0,0 +1,67 @@ +package com.inmind.io_in02; + +import java.io.FileInputStream; +import java.io.IOException; + +/* +字节输入流以及相关API的介绍 + 在java中使用抽象类InputStream表示字节输入流 + 常用的子类:FileInputStream + 构造方法: + FileInputStream(File file) 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的 File对象 file命名。 + FileInputStream(String name) 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name命名。 + 常用方法: + void close() 关闭资源 + int read() 从该输入流读取一个字节的数据。返回值就是字节数据 + int read(byte[] b) 从字节输入流中将字节数据读取到参数b数组中,返回的值读取的字节个数 + +字节输入流的基本使用 + 步骤: + 1.创建对象 + 2.调用读方法 + 3.释放资源 + */ +public class Demo06 { + public static void main(String[] args) throws IOException { + /* + 1.创建字节输入流对象 + 注意: + a.创建输入流对象时,文件不存在是报异常java.io.FileNotFoundException: source1.txt + b.创建输出流对象是,文件不存在才会新建 + */ + FileInputStream fis = new FileInputStream("source1.txt"); + /* + 2.调用读方法(一次读取一个字节) + int read() 从该输入流读取一个字节的数据。返回值就是字节数据 + */ + /*int b = fis.read(); + System.out.println(b); + System.out.println((char) b); + + b = fis.read(); + System.out.println(b); + System.out.println((char) b); + + b = fis.read(); + System.out.println(b); + System.out.println((char) b); + + b = fis.read(); + System.out.println(b);//-1 + System.out.println((char) b);*/ + //不停地读取字节数据,直到文件末尾(重点代码) + int b;//保存字节输入流读取到的字节数据 + /* + 循环条件:(b = fis.read())!=-1 + 执行顺序: + 1.fis.read():从字节输入流中读取一个字节数据 + 2.b = fis.read():将读取到的字节数据赋值给变量b + 3.(b = fis.read())!=-1:判断是否读取到字节数据,如果读到那么继续操作 + */ + while ((b = fis.read()) != -1) { + System.out.println((char) b); + } + + System.out.println("程序结束"); + } +}