`

InputStream 、 InputStreamReader 、 BufferedReader

    博客分类:
  • java
 
阅读更多

.InputStream、OutputStream

处理字节流的抽象类

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

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

 

2.InputStreamReader  OutputStreamWriter

处理字符流的抽象类

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

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

 

3.BufferedReader BufferedWriter

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

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

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

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

 

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

 

 

[java] view plaincopy
  1. import java.io.*;     
  2. public class Main {     
  3.     public static void main(String[] args) {     
  4.              
  5.         try {     
  6.             FileInputStream fis=new FileInputStream("d://desktop//test.txt");     
  7.             int i;     
  8.                  
  9.             try {     
  10.                 while((i=fis.read()) != -1){     
  11.                     System.out.println(i);     
  12.                 }     
  13.                 /*假設test.txt檔裡頭只有一個文字 "陳" ,且其編碼為 utf8   
  14.                  * 輸出   
  15.                  *  233   
  16.                     153   
  17.                     179   
  18.                  */    
  19.             } catch (IOException e) {     
  20.                 // TODO Auto-generated catch block     
  21.                 e.printStackTrace();     
  22.             }     
  23.                  
  24.                  
  25.         } catch (FileNotFoundException e) {     
  26.             // TODO Auto-generated catch block     
  27.             e.printStackTrace();     
  28.         }     
  29.                      
  30.     }     
  31. }   

 

 

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

 

 

[java] view plaincopy
  1. import java.io.*;     
  2. public class Main {     
  3.     public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {     
  4.                      
  5.             FileInputStream fis=new FileInputStream("d://desktop//test.txt");     
  6.             try {     
  7.                 InputStreamReader isr=new InputStreamReader(fis,"utf8");     
  8.                 int i;     
  9.                 while((i=isr.read()) != -1){     
  10.                     System.out.println((char)i);  //輸出  陳     
  11.                 }     
  12.             } catch (Exception e) {     
  13.                 // TODO Auto-generated catch block     
  14.                 e.printStackTrace();     
  15.             }                                            
  16.                      
  17.     }     
  18. }    

 

 

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

 

[java] view plaincopy
  1. import java.io.*;     
  2. public class Main {     
  3.     public static void main(String[] args) throws FileNotFoundException, UnsupportedEncodingException {     
  4.                      
  5.             FileInputStream fis=new FileInputStream("d://desktop//test.txt");     
  6.                  
  7.             try {     
  8.                 InputStreamReader isr=new InputStreamReader(fis,"utf8");                     
  9.                 BufferedReader br=new BufferedReader(isr);     
  10.                      
  11.                 String line;     
  12.                 while((line=br.readLine()) != null){     
  13.                     System.out.println(line);     
  14.                 }     
  15.             } catch (Exception e) {     
  16.                 // TODO Auto-generated catch block     
  17.                 e.printStackTrace();     
  18.             }                                            
  19.                      
  20.     }     
  21. }    

 

分享到:
评论

相关推荐

    InputStreamReader和BufferedReader用法及实例讲解

    InputStreamReader和BufferedReader是Java IO库中的两个重要类,它们在处理字符输入流时发挥着关键作用。本文将深入解析这两个类的用法,并通过实例来帮助理解它们的工作原理。 一、BufferedReader类 ...

    BufferedReader 和BufferedWriter 实例

    例如,在读取文件时,我们先创建一个`FileInputStream`对象,然后通过它创建一个`InputStreamReader`,最后将`InputStreamReader`传递给`BufferedReader`。 ```java FileInputStream fis = new FileInputStream(...

    有关文件内容的读取 BufferedReader

    BufferedReader reader = new BufferedReader(new InputStreamReader(is)); ``` 这里的`is`是一个`InputStream`对象,通常代表从文件、网络或其他来源读取的原始字节流。通过`InputStreamReader`,我们可以指定字符...

    InputStreamReader 和FileReader的区别及InputStream和Reader的区别

    InputStreamReader属于Reader类的子类,主要用于处理字符流,它充当字节流(如InputStream)与字符流之间的桥梁。在处理非ASCII编码的数据时,InputStreamReader允许指定字符编码,如果不指定,它会使用操作系统的...

    BufferedReader的readLine()方法使用时要注意

    使用`BufferedReader`通常需要先创建一个实例,通常是通过传递一个已经存在的`InputStreamReader`或`FileReader`对象到构造函数中。例如: ```java BufferedReader reader = new BufferedReader(new FileReader(...

    Java文件读写操作函数实现

    * InputStreamReader isr = new InputStreamReader(InputStream in,String * charsetName);//构造一个指定编码集的InputStreamReader类。 * * 参数 in对象通过 InputStream in = System.in;获得。//读取键盘上...

    java抓取网页三种方式

    在这个示例中,我们使用了 HttpURLConnection 的 openConnection() 方法来打开指定的 URL,然后使用 InputStreamReader 和 BufferedReader 来读取数据。 知识点: * 使用 HttpURLConnection 来抓取网页 * 使用 ...

    Java软件开发实战 Java基础与案例开发详解 13-6 转换流 共6页.pdf

    BufferedReader bufferedReader = new BufferedReader(inputStreamReader); try { System.out.println("请输入一些文本:"); // 读取一行数据 String inputLine = bufferedReader.readLine(); // 将输入的字符...

    图片上传下载

    BufferedReader br new BufferedReader new InputStreamReader is ; String buffer null; 循环读取请求内容的每一行内容 while buffer br readLine null { 如果读到的内容以 开始 且以 结束 表明忆到请求...

    CSV-Parsing:使用InputStream类解析csv文件

    本主题主要关注使用`InputStream`类来解析CSV文件,尤其适合处理大型文件,如含有超过10万行的CSV。 在Java中,`InputStream`是所有字节输入流的基础类,用于读取连续的字节序列。在处理大型CSV文件时,直接使用`...

    import java.io.BufferedReader.docx

    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Please input a number:"); String str = reader.readLine(); // 获取字符串 str = str.trim(); String[] arr =...

    java io 类 小结 代码

    InputStream OutputStream Reader Writer FileInputStream FileOutputStream FileReader FileWriter InputStreamReader OutputStreamWriter BufferedReader BufferedWriter PrintWriter ...

    Android读取assets下面文件的代码例子

    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { Log.d("TAG", line); } } catch (IOException e) { e....

    java串口通信以及示例代码!可以运行!

    InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; while (true) { line = bufferedReader....

    文件转换(inputString)

    - 使用`BufferedReader`和`InputStreamReader`:首先,通过`InputStreamReader`将InputStream转换为字符流,然后使用`BufferedReader`逐行读取并拼接成字符串。 ```java InputStream is = ...; ...

    java调用io流

    `InputStreamReader`和`BufferedReader`是Java中处理字符流的两个关键类,它们在读取文件时起到了重要作用。 `InputStreamReader`是Java的字符流输入类,它是从字节流到字符流的桥梁。它继承自`Reader`类,并且通常...

    java 中InputStream,String,File之间的相互转化对比

    BufferedReader in = new BufferedReader(new InputStreamReader(is)); StringBuffer buffer = new StringBuffer(); String line; while ((line = in.readLine()) != null) { buffer.append(line); } return ...

    Java字节流数据逐行读取(readLine)

    因此,要使用字节流实现数据逐行读取,我们需要结合`BufferedReader`和`InputStreamReader`。 首先,理解`readLine()`方法。它是`java.io.BufferedReader`类的一个实例方法,用于从输入流中读取一行文本,直到遇到...

    java 访问新浪网

    BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while ((line = br.readLine()) != null) { System.out.println(line); } ``` 这里使用了`BufferedReader`来逐行读取输入流中...

Global site tag (gtag.js) - Google Analytics