JavaSE-17.3.5【字节流读数据(一次读一个字节数据 & 一次读一个字节数组数据)】

 1 package day8.lesson3;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileOutputStream;
 6 import java.io.IOException;
 7 
 8 /*
 9 3.6 字节流读数据(一次读一个字节数据)
10 
11     字节输入流
12         FileInputStream(String name):通过打开与实际文件的连接来创建一个FileInputStream
13                                       该文件由文件系统中的路径名name命名
14 
15     字节输入流读取数据的步骤
16         创建字节输入流对象
17         调用字节输入流对象的读数据方法
18         释放资源
19  */
20 public class FileInputStreamDemo01 {
21     public static void main(String[] args) throws IOException {
22         FileInputStream fis = new FileInputStream("stage2\\src\\day8\\lesson3\\fos1.txt");
23 
24         /*int by = fis.read();
25         System.out.println(by); //97
26         System.out.println((char) by); //a*/
27 
28         /*int by = fis.read();
29         while (by != -1){
30             System.out.println(by);
31             System.out.println((char) by);
32             by = fis.read();
33         }*/
34 
35         //优化后的字节流读取数据标准代码
36         int by;
37         while ((by=fis.read()) != -1){
38             System.out.print((char)by);
39         }
40         /*
41             fis.read():读数据
42             by=fis.read():把读取到的数据赋值给by
43             by != -1:判断读取到的数据是否是-1
44         */
45 
46         fis.close();
47     }
48 }
 1 package day8.lesson3;
 2 
 3 import java.io.FileInputStream;
 4 import java.io.FileNotFoundException;
 5 import java.io.IOException;
 6 
 7 /*
 8 3.8 字节流读数据(一次读一个字节数组数据)
 9 
10     一次读一个字节数组的方法
11         public int read(byte[] b):从输入流读取最多b.length个字节的数据
12         返回的是读入缓冲区的总字节数,也就是实际的读取字节个数
13 
14  */
15 public class FileInputStreamDemo02 {
16     public static void main(String[] args) throws IOException {
17         FileInputStream fis = new FileInputStream("stage2\\src\\day8\\lesson3\\fos3.txt");
18 
19         /*byte[] bys = new byte[5];
20 
21         int len = fis.read(bys);
22         System.out.println(len);
23         System.out.println(new String(bys));*/
24         //String类的构造函数之一
25         // String​(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的 String 。
26         //注意,/r/n等也算作一个字符
27         //String类的构造函数之一
28         // String​(byte[] bytes, int offset, int length) 通过使用平台的默认字符集解码指定的字节子阵列来构造新的 String 。
29 
30         byte[] bys = new byte[1024]; //1024及其整数倍
31         int len;
32         while ((len=fis.read(bys)) != -1){
33             System.out.print(new String(bys, 0, len));
34         }
35 
36         fis.close();
37     }
38 }

 

posted @ 2021-06-05 13:28  yub4by  阅读(130)  评论(0编辑  收藏  举报