java 输入字符流_java基础45 IO流技术(输入字符流/缓冲输入字符流)

一、输入字符流

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-69 *10 */

11 public classDemo14{12 public static voidmain(String[] args) throws IOException {13 readTest();14 }15 //输入字符流

16 public static voidreadTest() throws IOException{17 //找到目标文件

18 File file=new File("C:\\MyEclipse10\\MyCode\\MyJavaCode\\src\\com\\dhb\\file\\Demo13.java");19 //建立数据输入通道

20 FileReader fr=newFileReader(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 }

运行结果图

69858b58146f56a91a3ecf50834a1535.png

二、缓冲输入字符流

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-1110 *11 */

12 public classDemo16 {13 public static voidmain(String[] args) throws IOException {14 readTest1();15 }16

17 public static voidreadTest1() throws IOException{18 //找到目标文件

19 File file=new File("F:\\a.txt");20 //建立数据输入通道

21 FileReader fr=newFileReader(file);22 BufferedReader br=newBufferedReader(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 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值