一、输入字符流

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、实例

 package com.dhb.file;

 import java.io.File;
import java.io.FileReader;
import java.io.IOException; /**
* @author DSHORE / 2018-7-6
*
*/
public class Demo14{
public static void main(String[] args) throws IOException {
readTest();
}
//输入字符流
public static void readTest() throws IOException{
//找到目标文件
File file=new File("C:\\MyEclipse10\\MyCode\\MyJavaCode\\src\\com\\dhb\\file\\Demo13.java");
//建立数据输入通道
FileReader fr=new FileReader(file);
//读取数据
int length=;
while((length=fr.read())!=-){//读数据
System.out.print((char)length);
}
//关闭资源
fr.close();
}
}

运行结果图

二、缓冲输入字符流

2.1、BufferedReader注意事项

1.缓冲输入字符流出现的目的:是为了提高效率和拓展功能,其实内部维护了一个字符数组
    2.凡是缓冲流都不具备读写文件的能力

2.2、实例

 package com.dhb.file;

 import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException; /**
* @author DSHORE / 2018-7-11
*
*/
public class Demo16 {
public static void main(String[] args) throws IOException {
readTest1();
} public static void readTest1() throws IOException{
//找到目标文件
File file=new File("F:\\a.txt");
//建立数据输入通道
FileReader fr=new FileReader(file);
BufferedReader br=new BufferedReader(fr);
/*//方式1:读取数据
int length=0;
while((length=br.read())!=-1){//一次读一个字符
System.out.print((char)length);
}
br.close();*/
//方式2:读取数据
String line=null;
while((line=br.readLine())!=null){//一次读一行
System.out.println(line);
}
}
}

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:https://www.cnblogs.com/dshore123/p/9272904.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

java基础45 IO流技术(输入字符流/缓冲输入字符流)的更多相关文章

  1. java基础之IO流(二)之字符流

    java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写 ...

  2. java基础之IO流(一)字节流

    java基础之IO流(一)之字节流 IO流体系太大,涉及到的各种流对象,我觉得很有必要总结一下. 那什么是IO流,IO代表Input.Output,而流就是原始数据源与目标媒介的数据传输的一种抽象.典 ...

  3. Java基础之IO流整理

    Java基础之IO流 Java IO流使用装饰器设计模式,因此如果不能理清其中的关系的话很容易把各种流搞混,此文将简单的几个流进行梳理,后序遇见新的流会继续更新(本文下方还附有xmind文件链接) 抽 ...

  4. java基础篇---I/O技术

    java基础篇---I/O技术   对于任何程序设计语言而言,输入输出(I/O)系统都是比较复杂的而且还是比较核心的.在java.io.包中提供了相关的API. java中流的概念划分 流的方向: 输 ...

  5. java基础篇---I/O技术(三)

    接上一篇java基础篇---I/O技术(二) Java对象的序列化和反序列化 什么叫对象的序列化和反序列化 要想完成对象的输入或输出,还必须依靠对象输出流(ObjectOutputStream)和对象 ...

  6. java基础43 IO流技术(输入字节流/缓冲输入字节流)

    通过File对象可以读取文件或者文件夹的属性数据,如果要读取文件的内容数据,那么我们就要使用IO技术. 一.输入字节流 输入字节流的体系:  -------| InputStream:所有输入字节流的 ...

  7. java基础46 IO流技术(输出字符流/缓冲输出字符流)

    一.输出字符流 1.1.输出字符流体系 --------| Writer:输出字符流的基类(抽象类)  ----------| FileWriter:向文件输出数据输出字符流(把程序中的数据写到硬盘中 ...

  8. Java基础:IO流之字节流和字符流

    1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念.在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备.外部文件等. 一个流,必有源端和目的端 ...

  9. java基础44 IO流技术(输出字节流/缓冲输出字节流)和异常处理

    一.输出字节流 输出字节流的体系: -------| OutputStream:所有输出字节流的基类(抽象类) ----------| FileOutputStream:向文件输出数据的输出字节流(把 ...

随机推荐

  1. 【django基础之ORM,增删改查】

    一.定义 1.什么是ORM? ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候, ...

  2. 1: @override

    @Override是Java5的元数据,自动加上去的一个标志,告诉你说下面这个方法是从父类/接口 继承过来的,需要你重写一次,这样就可以方便你阅读,也不怕会忘记 @Override是伪代码,表示重写( ...

  3. js正则取出一个字符串小括号中的内容

    var aa="ldfjsldfj(dsfasjfj3124123)"; var result = aa.match(/\(([^)]*)\)/); // 此时result=[&q ...

  4. 个人在 laravel 开发中使用到的一些技巧(持续更新)

    1.更高效率地查询:使用批量查询代替 foreach 查询(多次 io 操作转换为一次 io操作) 如果想要查看更详尽的介绍,可以看看这篇文章 什么是 N+1 问题,以及如何解决 Laravel 的 ...

  5. 【Asp.net入门08】第一个Asp.net应用程序-创建窗体并设置其样式

    本节内容: 添加一个aspx窗体并设计窗体内容 为aspx窗体添加样式 前面我们为PartyInvites应用程序项目添加了两个c#文件:GuestResponse.cs和ResponseReposi ...

  6. centos禁用ipv6

    两步完成 vi /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6=1sysctl -p /etc/sysctl.conf

  7. GO_05:GO语言基础map与函数

    1. map 1. 类似其它语言中的哈希表活着字典,以 key-value 形式存储数据 2. key 必须是支持 == 或 != 比较运算的类型,不可以是函数.map 或 slice 3. map ...

  8. Hadoop生态圈-Sqoop部署以及基本使用方法

    Hadoop生态圈-Sqoop部署以及基本使用方法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与 ...

  9. 《Java程序猿面试宝典》之字符串

    前不久刚看完这一章,然而这遗忘速度实在是不能忍,既然总是遗忘,那么老衲就和你磨上一磨. 1.字符串基础 先说字符串吧,看例1: String a = "abc"; String b ...

  10. BFS:八数码问题

    #include <iostream> #include <cstdlib> #include <cstdio> #include <cstring> ...