字符缓冲区输入输出流

文件输入输出流既然有缓冲区,那么字符也就会有。他们的一些用法基本是一致的:

字符缓冲区输出流:

 1 package com.hw.file0222;
 2 
 3 import java.io.BufferedWriter;
 4 import java.io.FileWriter;
 5 import java.io.IOException;
 6 
 7 import org.junit.Test;
 8 
 9 public class DemoBufferedFileWriter {
10     
11     @Test
12     public void testBufferedFileWriter(){
13         BufferedWriter writer = null;
14         try {
15             
16             writer = new BufferedWriter(new FileWriter("F://骚操作//demotest02.txt"));
17             writer.write('中');
18             writer.write('国');
19             writer.write('很');
20             writer.write('强');
21             writer.write('大');
22             writer.write(' ');
23             writer.write("我们很自豪");
24         } catch (IOException e) {
25             // TODO Auto-generated catch block
26             e.printStackTrace();
27         }finally{
28             try {
29                 if(writer != null){
30                     writer.close();
31                 }
32             } catch (IOException e) {
33                 // TODO Auto-generated catch block
34                 e.printStackTrace();
35             }
36         }
37         
38     }
39 }


 字符缓冲区输入流:

 1 package com.hw.file0222;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.FileNotFoundException;
 5 import java.io.FileReader;
 6 import java.io.IOException;
 7 
 8 import org.junit.Test;
 9 
10 @SuppressWarnings("unused")
11 public class DemoBufferedReader {
12     @Test
13     public void testBufferedReader(){
14         BufferedReader reader = null;
15         try {
16             reader = new BufferedReader(new FileReader("F://骚操作//demotest02.txt"));
17             System.out.print((char)reader.read());
18             System.out.print((char)reader.read());
19             System.out.print((char)reader.read());
20             System.out.print((char)reader.read());
21             
22             char[] data = new char[1024];
23             reader.read(data);
24             System.out.println(new String(data));
25             
26         } catch (IOException e) {
27             // TODO Auto-generated catch block
28             e.printStackTrace();
29         }finally{
30             try {
31                 if(reader != null){
32                     reader.close();
33                 }
34             } catch (IOException e) {
35                 // TODO Auto-generated catch block
36                 e.printStackTrace();
37             }
38         }
39     }
40 }

注意这里,我前面有四个读取之后,后面的用数组来读取,他不会又重新从第一个字符开始,而是接着上一个开始。

输入流这里还有一个readLine方法,可以一行一行地读取。

1 System.out.println(reader.readLine());
2 System.out.println(reader.readLine());

 

posted @ 2021-02-23 09:57  EvanTheBoy  阅读(102)  评论(0)    收藏  举报