zoukankan      html  css  js  c++  java
  • InputStream、InputStreamReader和BufferedReader的区别

    转自:https://www.cnblogs.com/redick/p/6644594.html

    1.InputStream、OutputStream

    处理字节流的抽象类

    InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.

    OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.

    2.InputStreamReader  OutputStreamWriter

    处理字符流的抽象类

    InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流.

    OutputStreamWriter是字符流通向字节流的桥梁,它将字符流转换为字节流.

    3.BufferedReader BufferedWriter

    BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,readLine读取一个文本行,

    从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。

    BufferedWriter  由Writer 类扩展而来,提供通用的缓冲方式文本写入, newLine使用平台自己的行分隔符,

    将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

    InputStream能从來源处读取一個一個byte,
    所以它是最低级的,
    例:

    复制代码
    import <a href="http://lib.csdn.net/base/javase" class='replace_word' title="Java SE知识库" target='_blank' style='color:#df3434; font-weight:bold;'>Java</a>.io.*;     
    public class Main {     
        public static void main(String[] args) {     
                 
            try {     
                FileInputStream fis=new FileInputStream("d://desktop//test.txt");     
                int i;     
                     
                try {     
                    while((i=fis.read()) != -1){     
                        System.out.println(i);     
                    }     
                    /*假設test.txt檔裡頭只有一個文字 "陳" ,且其編碼為 utf8   
                     * 輸出   
                     *  233   
                        153   
                        179   
                     */    
                } catch (IOException e) {     
                    // TODO Auto-generated catch block     
                    e.printStackTrace();     
                }     
                     
                     
            } catch (FileNotFoundException e) {     
                // TODO Auto-generated catch block     
                e.printStackTrace();     
            }     
                         
        }     
    }   
    复制代码

     InputStreamReader
     InputStreamReader封裝了InputStream在里头,
     它以较高级的方式,一次读取一个一个字符,
     下例是假设有一个编码为utf8的文档,
     其內容只有一个中文字 "陳"

    复制代码
    import java.io.*;     
    public class Main {     
        public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {     
                         
                FileInputStream fis=new FileInputStream("d://desktop//test.txt");     
                try {     
                    InputStreamReader isr=new InputStreamReader(fis,"utf8");     
                    int i;     
                    while((i=isr.read()) != -1){     
                        System.out.println((char)i);  //輸出  陳     
                    }     
                } catch (Exception e) {     
                    // TODO Auto-generated catch block     
                    e.printStackTrace();     
                }                                            
                         
        }     
    }    
    复制代码

    BufferedReader
    BufferedReader则是比InputStreamReader更高级,
    它封裝了StreamReader类,
    一次读取取一行的字符

    复制代码
    import java.io.*;     
    public class Main {     
        public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {     
                         
                FileInputStream fis=new FileInputStream("d://desktop//test.txt");     
                     
                try {     
                    InputStreamReader isr=new InputStreamReader(fis,"utf8");                     
                    BufferedReader br=new BufferedReader(isr);     
                         
                    String line;     
                    while((line=br.readLine()) != null){     
                        System.out.println(line);     
                    }     
                } catch (Exception e) {     
                    // TODO Auto-generated catch block     
                    e.printStackTrace();     
                }                                            
                         
        }     
    }    
  • 相关阅读:
    HttpEntity转换Inputstream(红色)加XmlPull解析
    ImageLoader加载图片
    HttpClient——Get,Post
    Android例子源码非第三方实现根据字母排序的城市列表
    Android 仿QQ消息界面
    css折叠表格
    前端页面文字长度显示控制
    (首页上一页下一页尾页 + 下拉框跳转)分页功能
    基于bootstrap的分页插件
    HTML 禁止复制文字
  • 原文地址:https://www.cnblogs.com/liulin1187740947/p/9175520.html
Copyright © 2011-2022 走看看