0
点赞
收藏
分享

微信扫一扫

JAVA——55.输入输出流三-bufferedreader


【bufferedreader】字符输入流,以字符为单位。FileInputStream和FileOutputStream是以字节为单位。1字符=2字节。字符输入流可以解决读字节没有办法确定文档中到底有多少个字节,把读取字节转化为读取字符。

bufferedreader的read方法读取的是字符

JAVA——55.输入输出流三-bufferedreader_字符输入


【InputStreamReader】是从字节流到字符流的桥:它读取字节,并使用指定的charset将其解码为字符

练习一、从a.txt读取第一行

package org.zhaiyujia.pkg1;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class TestReadFile {

    public void readFile(String filePath) {
        try {
            FileInputStream fis=new FileInputStream(filePath);

            //byte[] b=new byte[20];
            try {
                BufferedReader br=new BufferedReader(new InputStreamReader(fis));
//InputStreamReader是把InputStream对象转成Reader对象的一种类。先把fis转为InputStreamReader类的对象,然后再把InputStreamReader类的对象转化为BufferedReader的对象
//这是一个固定写法,其实我们可以把所有的字节输入流转换为字符输入流      
                String info=br.readLine();//读取第一行,指针指向下一行
                System.out.println(info);
                //fis.read(b);//读取出来的字节放在字节数组b里面,它也是强制try{}catch{}的,防止出现IO异常
                //System.out.println(new String(b));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {//必须使用try{}catch{},因为很有可能出现找不到这个文件的异常
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public static void main(String[] args) {
        TestReadFile obj=new TestReadFile();
        obj.readFile("f:/a.txt");
    }
}

JAVA——55.输入输出流三-bufferedreader_java_02


练习二、再接着输出第二行,第三行。其中代码都是重复的,我们可以用循环来做。

JAVA——55.输入输出流三-bufferedreader_System_03


举报

相关推荐

0 条评论