.InputStream、OutputStream
处理字节流的抽象类
InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.
OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.
2.InputStreamReader OutputStreamWriter
处理字符流的抽象类
InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流.
OutputStreamWriter是字符流通向字节流的桥梁,它将字符流转换为字节流.
3.BufferedReader BufferedWriter
BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,readLine读取一个文本行,
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
BufferedWriter 由Writer 类扩展而来,提供通用的缓冲方式文本写入, newLine使用平台自己的行分隔符,
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
InputStream能从來源处读取一個一個byte,
所以它是最低级的,
例:
- import java.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();
- }
- }
- }
相关推荐
InputStreamReader和BufferedReader是Java IO库中的两个重要类,它们在处理字符输入流时发挥着关键作用。本文将深入解析这两个类的用法,并通过实例来帮助理解它们的工作原理。 一、BufferedReader类 ...
例如,在读取文件时,我们先创建一个`FileInputStream`对象,然后通过它创建一个`InputStreamReader`,最后将`InputStreamReader`传递给`BufferedReader`。 ```java FileInputStream fis = new FileInputStream(...
BufferedReader reader = new BufferedReader(new InputStreamReader(is)); ``` 这里的`is`是一个`InputStream`对象,通常代表从文件、网络或其他来源读取的原始字节流。通过`InputStreamReader`,我们可以指定字符...
InputStreamReader属于Reader类的子类,主要用于处理字符流,它充当字节流(如InputStream)与字符流之间的桥梁。在处理非ASCII编码的数据时,InputStreamReader允许指定字符编码,如果不指定,它会使用操作系统的...
使用`BufferedReader`通常需要先创建一个实例,通常是通过传递一个已经存在的`InputStreamReader`或`FileReader`对象到构造函数中。例如: ```java BufferedReader reader = new BufferedReader(new FileReader(...
* InputStreamReader isr = new InputStreamReader(InputStream in,String * charsetName);//构造一个指定编码集的InputStreamReader类。 * * 参数 in对象通过 InputStream in = System.in;获得。//读取键盘上...
在这个示例中,我们使用了 HttpURLConnection 的 openConnection() 方法来打开指定的 URL,然后使用 InputStreamReader 和 BufferedReader 来读取数据。 知识点: * 使用 HttpURLConnection 来抓取网页 * 使用 ...
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 { 如果读到的内容以 开始 且以 结束 表明忆到请求...
本主题主要关注使用`InputStream`类来解析CSV文件,尤其适合处理大型文件,如含有超过10万行的CSV。 在Java中,`InputStream`是所有字节输入流的基础类,用于读取连续的字节序列。在处理大型CSV文件时,直接使用`...
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Please input a number:"); String str = reader.readLine(); // 获取字符串 str = str.trim(); String[] arr =...
InputStream OutputStream Reader Writer FileInputStream FileOutputStream FileReader FileWriter InputStreamReader OutputStreamWriter BufferedReader BufferedWriter PrintWriter ...
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); String line; while ((line = reader.readLine()) != null) { Log.d("TAG", line); } } catch (IOException e) { e....
InputStreamReader inputStreamReader = new InputStreamReader(inputStream); BufferedReader bufferedReader = new BufferedReader(inputStreamReader); String line; while (true) { line = bufferedReader....
- 使用`BufferedReader`和`InputStreamReader`:首先,通过`InputStreamReader`将InputStream转换为字符流,然后使用`BufferedReader`逐行读取并拼接成字符串。 ```java InputStream is = ...; ...
`InputStreamReader`和`BufferedReader`是Java中处理字符流的两个关键类,它们在读取文件时起到了重要作用。 `InputStreamReader`是Java的字符流输入类,它是从字节流到字符流的桥梁。它继承自`Reader`类,并且通常...
BufferedReader in = new BufferedReader(new InputStreamReader(is)); StringBuffer buffer = new StringBuffer(); String line; while ((line = in.readLine()) != null) { buffer.append(line); } return ...
因此,要使用字节流实现数据逐行读取,我们需要结合`BufferedReader`和`InputStreamReader`。 首先,理解`readLine()`方法。它是`java.io.BufferedReader`类的一个实例方法,用于从输入流中读取一行文本,直到遇到...
BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while ((line = br.readLine()) != null) { System.out.println(line); } ``` 这里使用了`BufferedReader`来逐行读取输入流中...