字符缓冲区输入输出流
文件输入输出流既然有缓冲区,那么字符也就会有。他们的一些用法基本是一致的:
字符缓冲区输出流:
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());


浙公网安备 33010602011771号