1 IO流之字节流
2 (1)IO用于在设备间进行数据传输的操作
3 (2)分类:
4 A:流向
5 输入流 读取数据
6 输出流 写出数据
7 B:数据类型
8 字节流
9 字节输入流
10 字节输出流
11 字符流
12 字符输入流
13 字符输出流
14 注意:
15 a:如果没有明确说明按照什么分,默认按照数据类型分。
16 b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。
17 (3)FileOutputStream写出数据
18 A:操作步骤
19 a:创建字节输出流对象
20 b:调用write()方法
21 c:释放资源
22
23 B:代码体现:
24 FileOutputStream fos = new FileOutputStream("fos.txt");
25
26 fos.write("hello".getBytes());
27
28 fos.close();
29
30 C:要注意的问题?
31 a:创建字节输出流对象时,
32 1.直接调用系统的功能区创建文件2.创建fileoutputStream对象3.将该对象指向这个文件
33
34 b:为什么要close()
35 首先是让流对象变成垃圾,这样就可以被垃圾回收器回收了,其次是通知系统区释放与该文件相关的资源
36 c:如何实现数据的换行
37 由于换行符也是可以读取的,因此一般是自动换行,
38 d:如何实现数据的追加写入
39 使用特殊的构造方法,将boolean append的参数写成true即可。
40 (4)FileInputStream读取数据
41 A:操作步骤
42 a:创建字节输入流对象
43 b:调用read()方法
44 c:释放资源
45
46 B:代码体现:
47 FileInputStream fis = new FileInputStream("fos.txt");
48
49 //方式1
50 int by = 0;
51 while((by = fis.read () ) != -1) {
52 System.out.print((char) by);
53 }
54
55 //方式2
56 byte[] bys = new byte [1024];
57 int len = 0;
58 while((len = fis.read(bys)) != -1) {
59 System.out.print(new String(bys,0,len)); //注意此处在读取数据时打印的数据一定是最后一次读取
60 //到的数组的实际长度,每一次读取数据都是下一次的数组覆
61 //盖上一次的数组中对应位置的元素值
62 }
63
64 fis.close();
65
66
67
68 IO流之字节流
69 字符输入流
70 基类:abstract Reader
71 int read():一次读取一个字符 --->与上面的字节流操作一致
72 int read(char[] chs):一次读取一个字符数组 --->与上面的字节流操作一致
73
74 |--InputStreamReader 75 |
--FileReader这个是简化方式一般使用该类
76 |--BufferedReader
77 String readLine():一次读取一个字符串
78 |--字符输出流 基类:Writer
80 void write(int ch):一次写一个字符
81 void write(char[] chs,int index,int len):一次写一个字符数组的一部分
82 83 |--OutputStreamWriter
84 |--FileWriter 由于该类名字简化一般直接使用该类
85 |--BufferedWriter
86 void newLine():写一个换行符
87 void write(String line):一次写一个字符串