InputStream 、 InputStreamReader 、 BufferedReader
1.InputStream、OutputStream
处理字节流的抽象类
InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.
OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.
2.InputStreamReader OutputStreamWriter
处理字符流的抽象类
InputStreamReader 是字节流通向字符流的桥梁,它将字节流转换为字符流.
OutputStreamWriter是字符流通向字节流的桥梁,它将字符流转换为字节流.
3.BufferedReader BufferedWriter
BufferedReader 由Reader类扩展而来,提供通用的缓冲方式文本读取,readLine读取一个文本行,从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
BufferedWriter 由Writer 类扩展而来,提供通用的缓冲方式文本写入, newLine使用平台自己的行分隔符,将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
InputStream能从來源处读取一個一個byte,所以它是最低级的,
例:
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封裝了InputStream在里头,它以较高级的方式,一次读取一个一个字符,
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则是比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();
} }
}
InputStream 、 InputStreamReader 、 BufferedReader的更多相关文章
- Java中BufferedReader、InputStreamReader、Scanner和System.in区别
		Java中获取键盘输入值的方法以前写算法都是C/C++写的,现在用Java写,虽然算法是独立于语言的,但是Java从键盘获取输入确实有些不一样.在C/C++中我们可以用scanf和cin来获取用户从键 ... 
- Java InputStream 、 InputStreamReader和BufferedReader
		https://blog.csdn.net/zgljl2012/article/details/47267609 在Java中,上述三个类经常用于处理数据流,下面介绍一下三个类的不同之处以及各自的用法 ... 
- Java中InputStream 、 InputStreamReader 、 BufferedReader的区别
		1.InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputS ... 
- JAVA FILE or I/O学习 - I/O流操作:FileInputStream、FileOutputStream、ObjectInputStream、ObjectOutputStream、InputStreamReader、OutputStreamWriter等
		public class IOStreamKnow { /*********************************文件读写方式:字节流**************************** ... 
- Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader
		字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ... 
- Java如何获取系统cpu、内存、硬盘信息
		1 概述 前段时间摸索在Java中怎么获取系统信息包括cpu.内存.硬盘信息等,刚开始使用Java自带的包进行获取,但这样获取的内存信息不够准确并且容易出现找不到相应包等错误,所以后面使用sigar插 ... 
- InputStream、InputStreamReader和Reader的关系
		InputStream:得到的是字节输入流,InputStream.read("filename")之后,得到字节流 Reader:读取的是字符流 InputStreamReade ... 
- Java IO流学习总结五:转换流-InputStreamReader、OutputStreamWriter
		类的继承关系 Reader |__ BufferedReader.StringReader.InputStreamReader |__ FileReader Writer |__ BufferedWr ... 
- inputStream、File、Byte、String等等之间的相互转换
		一:inputStream转换 1.inputStream转为byte //方法一 org.apache.commons.io.IOUtils包下的实现(建议) IOUtils.toByteArray ... 
随机推荐
- this以及执行上下文概念的重新认识
			在理解this的绑定过程之前,必须要先明白调用位置,调用位置指的是函数在代码中被调用的位置,而不是声明所在的位置. (ES6的箭头函数不在该范围内,它的this在声明时已经绑定了,而不是取决于调用时. ... 
- 使用工具Android Studio实现一个简单的Android版的新闻APP
			目的: 这是我学完Android课程后所写的一个小的.简单版的新闻APP 技术概要: 用到了SQLite数据库,用它来存储每篇新闻下的评论 新闻的来源是新浪新闻,我通过使用Fiddler来对新浪新闻A ... 
- udp发送广播消息
			import socket if __name__ == '__main__': # 创建udpsocket udp_socket = socket.socket(socket.AF_INET, so ... 
- Linux常见文件管理命令
			1.Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示.(1)目录管理命令——ls:列出指定目录下的内容格式:ls [OPTION]... [FILE]... -a:显示所有文件包 ... 
- idea中自定义设置xml的头文件的内容
			因为在idea中新建的xml默认的头文件,有时候并不是我们需要的这时候可以通过自定义来解决. 如搭建hibernate的实体类的映射xml. 首先 fiel→settings出现 如下框框 在上面搜索 ... 
- js 判断function是否存在
			function myFunction(){ }//方法一 if(typeof(myFunction) == 'function'){ //function }else{ //undefined }/ ... 
- win10鼠标右键菜单在左边,怎么改回右边
			键盘上按WIN+R打开运行窗口,输入shell:::{80F3F1D5-FECA-45F3-BC32-752C152E456E}按回车键 
- Dawson City【道森市】
			Dawson City Cities usually have a good reason for being where they are, like a nearby port or river. ... 
- Codeforces Round #460 (Div. 2).E 费马小定理+中国剩余定理
			E. Congruence Equation time limit per test 3 seconds memory limit per test 256 megabytes input stand ... 
- 17-比赛1 D - IPC Trainers (贪心 + 优先队列)
			题目描述 本次印度编程训练营(Indian Programming Camp,IPC)共请到了 N 名教练.训练营的日程安排有 M 天,每天最多上一节课.第 i 名教练在第 Di 天到达,直到训练营结 ... 
