课堂所讲整理:输入输出流(I/O)2(修改版)

时间:2022-07-11 15:04:51
 1 package org.hanqi.ex;
 2 
 3 import java.io.*;
 4 
 5 public class TestFile2 {
 6 
 7     public static void main(String[] args) {
 8         
 9         try {
10             //覆盖写入
11             //true 追加写入
12             FileOutputStream fos = new FileOutputStream("d:\\test.txt",true);
13             String str = "\n心情不错";
14             fos.write(str.getBytes());            
15             fos.close();
16             
17             FileInputStream fis = new FileInputStream("d:\\test.txt");
18             byte[] b = new byte[200];
19             int i = fis.read(b);
20             String str1 = new String(b,0,i);
21             System.out.println("读取内容:"+str1);
22             fis.close();
23         } catch (Exception e) {
24             // TODO 自动生成的 catch 块
25             e.printStackTrace();
26         }
27     }
28 }
 1 package org.hanqi.ex;
 2 
 3 import java.io.*;
 4 
 5 public class TestFile3 {
 6 
 7     public static void main(String[] args) {
 8         
 9         try {
10             //读取
11             FileReader fr = new FileReader("d:\\test.txt");
12             char[] c = new char[200];
13             int i = fr.read(c);
14             String str = new String(c,0,i);
15             System.out.println("读取内容:"+str);
16             fr.close();
17             
18             //写入
19             FileWriter fw = new FileWriter("d:\\test.txt", true);
20             fw.write("\n新追加的内容");
21             fw.close();
22         } catch (Exception e) {
23             // TODO 自动生成的 catch 块
24             e.printStackTrace();
25         }
26     }
27 }
 1 package org.hanqi.ex;
 2 
 3 import java.io.*;
 4 
 5 public class TestFile4 {
 6 
 7     public static void main(String[] args) {
 8                 
 9         try {
10             File f = new File("d:\\test.txt");
11             //带缓存
12             //Writer接口的实现类
13             FileWriter fw = new FileWriter(f);
14             //缓存写入类,构造时需要传入Writer实例
15             BufferedWriter bw = new BufferedWriter(fw);
16             bw.write("\n这是清空前缓存方式写入的字符串");
17             //自动管理缓存:
18             //自动写入:1.缓存满了 2.缓存关闭之前
19             bw.flush();  //主动清空缓存,写入数据
20             
21             bw.write("\n这是清空后缓存方式写入的字符串");
22             
23             bw.close();  //注意关闭顺序
24             fw.close();
25             System.out.println("写入完成");
26             //缓存读
27             FileReader fr = new FileReader(f);
28             BufferedReader br = new BufferedReader(fr);
29 //            //第一次读
30 //            String str = br.readLine();
31 //            
32 //            while(str!=null)
33 //            {
34 //                System.out.println(str);
35 //                 str = br.readLine();                
36 //            }
37             while(true)
38             {
39                 String str = br.readLine();
40                 if(str==null)
41                 {
42                     break;                    
43                 }
44                 System.out.println(str);
45             }
46             
47         } catch (Exception e) {
48             // TODO 自动生成的 catch 块
49             e.printStackTrace();
50         }
51     }
52 }

 

 附相关思维导图:

课堂所讲整理:输入输出流(I/O)2(修改版)