一、输入字符流
1.1、输入字符流体系
------| Reader:输入字符流的基类(抽象类)
----------| FileReader:向指定文件读取数据的输入字符流(把硬盘上的数据读取到程序中)
----------| BufferedReader:缓冲输入字符流。 缓冲输入字符流出现的目的:是为了提高效率和拓展功能,其实内部维护了一个8192长度的字符数组
注意:所有缓冲流都不具备读写文件的能力(比如BufferedReader,他要借助FileReader的读功能来读文件)
1.2、字节流和字符流的区别
1、字节流:字节流是读取文件中的二进制数据,读到的数据并不会自动转换成你看得懂的字符,要通过调用getBytes()转换成字符数据,并且用数组接收。比如:byte[] buf=s.getBytes()
2、字符流:字符流会把读取到的二进制的数据自动进行对应的编码与解码工作。字符流=字节流+编码(解码)
1.3、FileReader的步骤
1、找到目标文件
2、建立数据输入通道
3、读取数据(把硬盘上的数据读取到程序中)
4、关闭资源
1.4、实例
1 package com.dhb.file; 2 3 import java.io.File; 4 import java.io.FileReader; 5 import java.io.IOException; 6 7 /** 8 * @author DSHORE / 2018-7-6 9 * 10 */ 11 public class Demo14{ 12 public static void main(String[] args) throws IOException { 13 readTest(); 14 } 15 //输入字符流 16 public static void readTest() throws IOException{ 17 //找到目标文件 18 File file=new File("C:\MyEclipse10\MyCode\MyJavaCode\src\com\dhb\file\Demo13.java"); 19 //建立数据输入通道 20 FileReader fr=new FileReader(file); 21 //读取数据 22 int length=0; 23 while((length=fr.read())!=-1){//读数据 24 System.out.print((char)length); 25 } 26 //关闭资源 27 fr.close(); 28 } 29 }
运行结果图
二、缓冲输入字符流
2.1、BufferedReader注意事项
1.缓冲输入字符流出现的目的:是为了提高效率和拓展功能,其实内部维护了一个字符数组
2.凡是缓冲流都不具备读写文件的能力
2.2、实例
1 package com.dhb.file; 2 3 import java.io.BufferedReader; 4 import java.io.File; 5 import java.io.FileReader; 6 import java.io.IOException; 7 8 /** 9 * @author DSHORE / 2018-7-11 10 * 11 */ 12 public class Demo16 { 13 public static void main(String[] args) throws IOException { 14 readTest1(); 15 } 16 17 public static void readTest1() throws IOException{ 18 //找到目标文件 19 File file=new File("F:\a.txt"); 20 //建立数据输入通道 21 FileReader fr=new FileReader(file); 22 BufferedReader br=new BufferedReader(fr); 23 /*//方式1:读取数据 24 int length=0; 25 while((length=br.read())!=-1){//一次读一个字符 26 System.out.print((char)length); 27 } 28 br.close();*/ 29 //方式2:读取数据 30 String line=null; 31 while((line=br.readLine())!=null){//一次读一行 32 System.out.println(line); 33 } 34 } 35 }
原创作者:DSHORE 作者主页:http://www.cnblogs.com/dshore123/ 原文出自:https://www.cnblogs.com/dshore123/p/9272904.html 欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!) |