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 }
时间: 2024-11-05 12:09:15

BufferedReader的相关文章

Java_io_PrintWriter和BufferedReader

package stream; import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintWriter; public class TestReader { publ

理解IO流:InputStream和OutputStream,FileInputStream和FileOutputStream,Reader和Writer,FileReader和FileWriter,BufferedInputStream 和 BufferedOutputStream, BufferedReader 和 BufferedWriter,转换流

/* * 1.理解 "流" ? * 动态性.连续性.方向性. * * 2.在java语言中,将数据的输入/输出称之为 IO流. IO流的分类: * 1) 从方向分: 输入流 , 输出流. (参照计算机的内存) * 将数据送到内存中去称之为输入流.反之,称之为输出流. * * 2) 从处理单位来分: 字节流(8位二进制数据), 字符流(16位二进制数据). * * 3) 从是否有数据源来分: 节点流(有数据源), 处理流(必须套在节点流上). * * 3.在Java语言中,所有流类均来自

Java IO - BufferedReader & BufferedWriter

java.io 包提供丰富的 IO 读写功能,封装在不同的类里面.其中,使用 BufferedReader 和 BufferedWriter 可以方便地进行读.写文件的操作. 使用例子如下: import static java.lang.System.out; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; pu

JAVA BufferedReader 类从标准输入读取数据

1,建立输入流: BufferedReader localReader = new BufferedReader( new InputStreamReader(System.in)); System.in 表示标准输入,一般指键盘. 建立输入流,从标准输入读取数据到缓冲区中. 当在标准输入中输入一行字符串时,按回车之后,这行数据就会被读取到缓冲区中. 比如: abc  \r\n(表示按下回车键) 那么msg就会赋值为 abc String msg = null; while ((msg = lo

使用Reader模拟实现BufferedReader效果

我们都知道BufferedReader是一个缓冲区的读取流,内部需要读取功能的成员,也就是Reader的子类.我么可以这样实现: 1:内部定义字符数组,相当于缓冲区,提高了效率 2:操作数组的下标 3:统计字符的个数 public class Demo11 { public static void main(String[] args) throws IOException {<pre name="code" class="java"><span

BufferedReader子类LineNumberReader装饰类的简单介绍

个人感觉这个类其实没什么特殊的功能,只有很少的时候会使用到其中的功能其中有这么两个多出来的功能 setLineNumber public void setLineNumber(int lineNumber) 设置当前行号. 参数: lineNumber - 指定行号的 int 值 另请参见: getLineNumber() getLineNumber public int getLineNumber() 获得当前行号. 返回: 当前行号 另请参见: setLineNumber(int) 那么我们

02_IO操作的基本规律(InputStream,OutputStream,Reader,Writer,FileReader,FileWriter,BufferedReader,BufferedWri

 模拟BufferedInputStream,编写一个类 package toto.IO; import java.io.IOException; import java.io.InputStream; class MyBufferedInputStream{ private InputStream in; private byte[] buf = new byte[1024*4]; private int pos = 0,count = 0; MyBufferedInputStream(I

解決BufferedReader读取UTF-8文件中文乱码(转)

读取txt文件乱码 Java代码 BufferedReader read = new BufferedReader(new FileReader(new File(filename))); 解决办法: Java代码 InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "UTF-8"); BufferedReader read = new BufferedReader(isr); 因为Input

关于Bufferedreader的功能扩写

package cn.hncu.pattern.decorator.v1; import java.io.FileReader;import java.io.IOException; public class MyBufferedReader { private FileReader r;//封装或组合一个对象 private char[]cbuf = new char[1024]; private int count=0;//记录缓冲区中字符的个数 100 private int pos=0;

Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区

ava.io下面有两个抽象类:InputStream和Reader InputStream是表示字节输入流的所有类的超类Reader是用于读取字符流的抽象类InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别.即用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组.弄清了两个超类的根本区别,再来看他们底下子类的使用,这里只对最常用的几个说明 InputStream    | __FileInputStre