BufferedReader

 

Reader

  FileReader

  BufferedReader

 1 package file;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.File;
 5 import java.io.FileReader;
 6 import java.io.IOException;
 7 import java.util.Arrays;
 8 
 9 public class Demo7 {
10     public static void main(String[] args) throws IOException {
11         readTest1();
12     }
13     
14     public static void readTest1() throws IOException {
15         File file = new File("F:\\2.txt");
16         FileReader fileReader = new FileReader(file);
17         //建立缓冲输入字符流
18         BufferedReader bufferedReader = new BufferedReader(fileReader);
19         //读取数据
20 //        int content = bufferedReader.read();
21 //        System.out.println((char)content);
22         String line = null;
23         while((line = bufferedReader.readLine()) != null) {    //一次读取一行,读到文件末尾null    ,每次读取的不包含\r\n的
24             System.out.println(line);
25 //            System.out.println(Arrays.toString(line.getBytes()));
26 //            System.out.println(Arrays.toString("aa\r\n".getBytes()));    //包含换行。
27         }
28         //关闭资源
29         bufferedReader.close();
30     }
31 }

 

自己实现readLine方法,默认的是每次读取一行,但不包括\r\n。自己实现一个包括的

 1 package file;
 2 
 3 import java.io.File;
 4 import java.io.FileReader;
 5 import java.io.IOException;
 6 
 7 public class Demo8 {
 8     public static void main(String[] args) throws IOException {
 9         File file = new File("F:\\2.txt");
10         FileReader fileReader = new FileReader(file);
11         String line = null;
12         while(!(line = myReadLine(fileReader)).equals("")) {
13             System.out.println(line);
14         }
15     }
16     
17     //自己实现ReadLine
18     public static String myReadLine(FileReader fileReader) throws IOException {
19         //创建一个字符串缓冲类对象
20         StringBuilder sb = new StringBuilder();
21         int content = 0;
22         while((content = fileReader.read()) != -1) {
23             if(content == '\r') {
24                 continue;
25             }else if(content == '\n') {
26                 break;
27             }else {
28                 sb.append((char)content);
29             }
30         }
31         
32 //        if(content == -1 ){
33 //            return null;
34 //        }
35         return sb.toString();    //如果没有了,返回的是"",不是null
36     }
37 }

 

posted @ 2016-07-11 18:25  微风星宇  阅读(210)  评论(0编辑  收藏  举报