InputStreamReader和FileReader的区别

/*
    BufferedReader

    InputStreamReader 转换流
*/
import java.io.*;

public class BufferedReaderTest02
{
    public static void main(String[] args) throws Exception{

        /*
        //创建带有缓冲区的字符输入流
        FileInputStream fis = new FileInputStream("BufferedReaderTest02.java"); //文件字节输入流

        //转换流(将字节流转换成字符流)
        InputStreamReader isr = new InputStreamReader(fis); //isr是字符流

        BufferedReader br = new BufferedReader(isr);
        */

        BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("BufferedReaderTest02.java")));

        //开始读
        String temp = null;
        while((temp=br.readLine())!=null){
            System.out.println(temp);
        }

        //关闭,关闭最外层的流即可. (装饰者模式)
        br.close();
    }
}

 InputStreamReader和FileReader的区别:

InputStreamReader是输入字节到字符的转换流,所以其构造方法的参数必须是InputStream类型的,并且可以在构造方法中重新指定编码的方式; InputStreamReader是FileReader的父类;

FileReader是便捷类,构造器的参数可以是文件的路径字符串,也可以是File类;不需要new 一个 InputStream作为参数。

FileReader:

InputStreamReader:

时间: 2024-10-07 06:08:36

InputStreamReader和FileReader的区别的相关文章

InputStreamReader 和FileReader的区别

InputStreamReader 和 BufferedReader .其中最重要的类是 InputStreamReader ,它是字节转换为字符的桥梁. 你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如 GBK 等. FileReader 与 InputStreamReader 涉及编码转换 ( 指定编码方式或者采用 os 默认编码 ) ,可 能在不同的平台上出现乱码现象!而 FileInputStream 以二进制方式处理,不会出现乱码现象 . FileI

Java 之 FileReader FileInputStream InputStreamReader BufferedReader 作用与区别

一直搞不清楚FileReader FileInputStream InputStreamReader BufferedReader 之间的区别联系,每次写读取文档的java程序都是网上百度.今天专门就这个问题进行了深入探讨. 一.来源 java.io下有两个抽象类InputStream和Reader,上述类都是继承了这两个超类.它们之间区别是:InputStream是字节流的输入,Reader是字符流输入. 二.具体每类 InputStream    | __FileInputStream Fi

InputStreamReader 和 FileReader联系与区别

两者关系: FileReader继承自InputStreamReader : 区别: InputStreamReader 是字节流通向字符流的桥梁:它使用指定的 charset 读取字节并将其解码为字符.它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集. 每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节.要启用从字节到字符的有效转换,可以提前从底层流读取更多的字节,使其超过满足当前读取操作所需的字节. 为了达到最

Reader字符输入流和InputStreamReader和FileReader

1.FileReader  extends InputStreamReader extends Reader 其中,Reader字符输入流和InputStreamReader和FileReader为字符输入流——写出——读取: 原文地址:https://www.cnblogs.com/wmqiang/p/10798538.html

[转]Java FileInputStream与FileReader的区别

在解释Java中FileInputStream和FileReader的具体区别之前,我想讲述一下Java中InputStream和Reader的根本差异,以及分别什么时候使用InputStream和Reader.实际上, InputStream和Reader都是抽象类,并不直接地从文件或者套接字(socket)中读取数据.然而,它们之间的主要差别在于:InputStream用于读取二进制数据(字节流方式,译者注),Reader用于读取文本数据(字符流方式,译者注),准确地说,Unicode字符.

Java FileInputStream与FileReader的区别

在解释Java中FileInputStream和FileReader的具体区别之前,我想讲述一下Java中InputStream和Reader的根本差异,以及分别什么时候使用InputStream和Reader.实际上, InputStream和Reader都是抽象类,并不直接地从文件或者套接字(socket)中读取数据.然而,它们之间的主要差别在于:InputStream用于读取二进制数据(字节流方式,译者注),Reader用于读取文本数据(字符流方式,译者注),准确地说,Unicode字符.

InputStream、InputStreamReader和BufferedReader的区别

转自:https://www.cnblogs.com/redick/p/6644594.html 1.InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等. 2.InputStreamReader  OutputStreamWriter 处理字符流的抽象类 I

JAVA 中的文件读取

1. InputStream / OutputStream处理字节流抽象类:所有输入.输出(内存)类的超类,一般使用 FileInputStream / FileOutputStream 输出字符 utf8 编码:如 4431 2. InputStreamReader / OutputStreamWriter处理字符流抽象类  InputStreamReader:字节流通向字符流的桥梁,将字节流转换为字符流  OutputStreamWriter:字符流通向字节流的桥梁,将字符流转换为字节流 输

Stream,Reader/Writer,Buffered的区别(2)

Reader: Reader的子类: 1.BufferedReader: FileReader 没有提供读取文本行的功能,BufferedReader能够指定缓冲区大小,包装了read方法高效读取字符流.提供字符.数组和行的高效读取. 开发文档中的介绍: 从字符输入流中读取文本,缓冲各个字符,从而实现字符.数组和行的高效读取.可以指定缓冲区的大小,或者可使用默认的大小.大多数情况下,默认值就足够大了. 通常,Reader 所作的每个读取请求都会导致对底层字符或字节流进行相应的读取请求. 因此,建