BufferedReader

本文介绍了使用Java进行文件读取的方法,通过FileReader和BufferedReader实现逐行读取,并提供了一个自定义的readLine方法,该方法可以正确处理行尾符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

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 }

 

转载于:https://www.cnblogs.com/linst/p/5661272.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值