From 6211e4db35936c1ed16f52f6b91b53cc66d4f3ea Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 21 Mar 2026 11:43:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day09-=E5=AD=97=E8=8A=82?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E6=B5=81=E7=9A=84=E5=9F=BA=E6=9C=AC=E4=BD=BF?= =?UTF-8?q?=E7=94=A8&=E4=B8=80=E6=AC=A1=E8=AF=BB=E5=8F=96=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E5=AD=97=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/inmind/inputstream02/Demo06.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 javaSE-day09/src/com/inmind/inputstream02/Demo06.java diff --git a/javaSE-day09/src/com/inmind/inputstream02/Demo06.java b/javaSE-day09/src/com/inmind/inputstream02/Demo06.java new file mode 100644 index 0000000..00ea4de --- /dev/null +++ b/javaSE-day09/src/com/inmind/inputstream02/Demo06.java @@ -0,0 +1,68 @@ +package com.inmind.inputstream02; + +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; + +/* + 在java中使用抽象类InputStream表示字节输入流 + 常用的子类:FileInputStream + 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.创建对象 + 注意: + 1.创建输入流对象时,文件不存在是报异常java.io.FileNotFoundException: b.txt + 2.创建输出流对象是,文件不存在才会新建 + */ + FileInputStream fis = new FileInputStream("a.txt"); + + //2.调用读方法 + //int read() 从该输入流读取一个字节的数据。返回值就是字节数据 + /*int c = fis.read(); + System.out.println(c);//97 + + c = fis.read(); + System.out.println(c);//98 + + c = fis.read(); + System.out.println(c);//99 + + c = fis.read(); + System.out.println(c);//-1*/ + + /*使用while循环来优化以上代码 + 返回值不是-1,则一直读取 + */ + int c;//用来接收字节输入流读取的字节数据 + /* + 循环条件:(c = fis.read())!=-1 + 执行顺序: + 1.fis.read():从字节输入流中读取一个字节数据 + 2.c = fis.read():将读取到的字节数据赋值给变量c + 3.(c = fis.read())!=-1:判断是否读取到字节数据,如果读到那么继续操作 + */ + while ((c = fis.read())!= -1) { + System.out.println((char) c);//按照ascii码表展示 + } + + //3.释放资源 + fis.close(); + System.out.println("程序结束"); + } +}