1. InputStream / OutputStream
处理字节流
抽象类:所有输入、输出(内存)类的超类,一般使用 FileInputStream / FileOutputStream

输出字符 utf8 编码:如 4431

2. InputStreamReader / OutputStreamWriter
处理字符流
抽象类
  InputStreamReader:字节流通向字符流的桥梁,将字节流转换为字符流
  OutputStreamWriter:字符流通向字节流的桥梁,将字符流转换为字节流

输出字符:一个个字符,如:a 或者 陈(汉字)

3. BufferedReader / BufferedWriter
Reader 类扩展,文本读取的通用缓冲方式,readLine 方法读取一个文本行,从【字符输入流】读取文本,缓冲各个字符,以提高字符、数组和行的读取效率。
Writer 类扩展而来,文本写入的通用缓冲方式,newLine 使用平台自己的行分隔符,将文本写入【字符输出流】,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。

输出文本行

InputStream 能从来源处读取一个一个字节(Byte),所以他是最低级的。

进化过程:
  FileInputStream(byte)  -->  InputStreamReader(字符)  -->  BufferedReader(行)

InputStreamReader 与 FileReader 的区别:
  InputStreamReader 是用来读取原始字节流,可指定编码格式
  FileReader 是读取字符流,使用系统默认的编码格式,当读取中文文件是易出现乱码问题。

JAVA 中的文件读取的更多相关文章

  1. java中的文件读取和文件写出:如何从一个文件中获取内容以及如何向一个文件中写入内容

    import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.Fi ...

  2. java中常量文件的配置与读取

    java中常量文件的配置与读取: package com.floor.shop.user.util; import java.io.InputStream; import java.io.InputS ...

  3. Java学习-019-Properties 文件读取实例源代码

    在这几天的学习过程中,有开发的朋友告知我,每个编程语言基本都有相应的配置文件支持类,像 Python 编程语言中支持的 ini 文件及其对应的配置文件读取类 ConfigParse,通过这个类,用户可 ...

  4. Java学习-017-EXCEL 文件读取实例源代码

    众所周知,EXCEL 也是软件测试开发过程中,常用的数据文件导入导出时的类型文件之一,此文主要讲述如何通过 EXCEL 文件中 Sheet 的索引(index)或者 Sheet 名称获取文件中对应 S ...

  5. Java学习-016-CSV 文件读取实例源代码

    上文(CSV文件写入)讲述了日常自动化测试过程中将测试数据写入 CSV 文件的源码,此文主要讲述如何从 CSV 文件获取测试过程中所需的参数化数据.敬请各位小主参阅,若有不足之处,敬请大神指正,不胜感 ...

  6. Java中的文件操作(一)RandomAccessFile

    今天,学到的是java中的文件操作. Java.IO.File Java中操作文件用到RandomAccessFile类,既可以读取文件内容,也可以向文件输出数据,但不同与普通输入/输出流的是Rand ...

  7. 3,Java中的文件IO流

    1,File类 ··· 概念:File对象可以表示一个文件或目录.可以对其进行增删改查. ··· 常用方法:     File f = new File(".");     判断是 ...

  8. Java解决大文件读取的内存问题以及文件流的比较

    Java解决大文件读取的内存问题以及文件流的比较 传统方式 读取文件的方式一般是是从内存中读取,官方提供了几种方式,如BufferedReader, 以及InputStream 系列的,也有封装好的如 ...

  9. Java中删除文件、删除目录及目录下所有文件(转)

    原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...

随机推荐

  1. CSS animation online生成工具

    利用HTML5.css的一些动画功能,可以设计出非常炫酷的动画,但是由于并不是所有的浏览器都支持,所以可能需要prefix,这个过程是比较烦的.一个比较好用的线上工具: http://matthewl ...

  2. 给Docker武士们的正式邀请,赶紧收哦!

    亲爱的Docker武士,Docker大师们喊你来参加Docker的定期聚啦~收好时间.地点,快来相见.切磋Docker吧!5月17日,微软上海港汇办公室,我们与你不见不散! 点击阅读原文,或直接进入注 ...

  3. Android笔记——Socket通信实现简单聊天室

    两部分,客户端和服务端 ---------------------------------------------------------------- 客户端  1.为防止ANR异常,互联网连接可用 ...

  4. IERS-OSPF基本工作原理

    IERS-OSPF基本工作原理 一.邻居建立建立过程 1.Router ID 用于在自治系统中唯一标识一台运行OSPF的路由器,每台运行OSPF的路由器都有一个ROUTER ID Route ID 是 ...

  5. hosts配置

    转自:http://www.cnblogs.com/ylemzhang/archive/2011/10/19/2217187.htm 注意: hosts文件不支持端口映射 如果指定端口参考:  //直 ...

  6. GO语言(七)多核并行化的问题

    package main import "fmt" type Vector []float64 func (v Vector) DoSome(i,n int, u Vector, ...

  7. Go语言(二) 继承和重载

    继承 package main import "fmt" type Skills []string type person struct { name string age int ...

  8. MongoDB插入文档

    db.collection.insertOne() 插入单个文档.db.collection.insertMany() 插入多个文档.db.collection.insert() 插入单/多个文档.  ...

  9. 为什么要使用base64编码,有哪些情景需求?

    Base64编码原理与应用 Java实现BASE64编解码 公钥证书也好,电子邮件数据也好,经常要用到Base64编码,那么为什么要作一下这样的编码呢? 我们知道在计算机中任何数据都是按ascii码存 ...

  10. git及github配置入门

    github是一个有海量开源代码库的网站,同时也是一个软件开发管理软件,作为软件来说它集成了git这个分布式的版本控制系统,可以上传.下载和管理自己的代码. 笔者刚接触不久,把认为入门应该知道的东西稍 ...