• 想要知道开发时,使用哪个流对象, 只要通过四个明确即可.
  1. 明确源和目的(数据汇)

    • 源: InputStream 或 Reader
    • 目的: OutPutStream 或 Writer
  2. 明确数据是否是纯文本数据

    • 源:

      • 是纯文本: Reader
      • 不是纯文本: InputStream
    • 目的:
      • 是纯文本: Writer
      • 不是纯文本: OutputStream
    • 到这里, 就可以明确需求中具体要使用哪个体系.
  3. 明确具体的设备, 即要明确使用哪一个对象

    • 源设备:

      • 硬盘: File
      • 键盘: System.in
      • 内存: 数组
      • 网络: Socket 流
    • 目的设备:
      • 硬盘: File
      • 键盘: System.out
      • 内存: 数组
      • 网络: Socket 流
  4. 是否需要额外的功能

    • 需要高效(缓冲区), 就加上 buffer
    • 需要转换, 就将字节流转换为字符流
// 示例: 将一个中文字符串数据按照指定的编码表写入到一个文本文件中.

    /*
* 思路:
* 1. 目的: OutputStream, Writer
* 2. 是纯文本数据: Writer
* 3. 设备: 硬盘, File
* FileWriter fw = new FileWriter("a.txt");
* fw.write("你好");
* fw.close();
* 注意:
* 既然需求中已经明确了指定编码表的动作, 那就不可以使用 FileWriter, 因为 FileWriter 内部
* 使用的是默认的本地编码表.
* 因此,只能使用其父类, OutputStreamWriter, 转换流
* OutputStreamWriter 的构造方法中必须带有一个字节输出流对象, 既然是操作文件,
* 那么该对象应该是 FileOutputStream.
*
* OutputStreamWriter osw =
* new OutputStreamWriter(new FileOutputStream("a.txt"), charsetName(编码表));
* osw.write("你好");
* osw.close();
*/
  • 什么时候使用转换流呢?

    1. 源或者目的对应的设备是字节流, 但是操作的却是文本数据, 可以使用转换流作为桥梁

      提高对文本操作的便捷
    2. 一旦操作文本涉及到具体指定的编码表时, 必须使用转换流.

参考资料

IO 流的操作基本规律的更多相关文章

  1. Java---IO加强(3)-IO流的操作规律

    一般写关于操作文件的读取的几个通用步骤!!! 1.明确源和目的. 源:InputStream Reader 一定是被读取的. 目的:OutputStream Writer 一定是被写入的. 2.处理的 ...

  2. C# IO流的操作

    C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...

  3. C# IO流的操作(一)

    C# IO流的操作非常重要,我们读写文件都会使用到这个技术,这里先演示一个文件内容复制的例子,简要说明C#中的IO操作. namespace ConsoleApplication1 { class P ...

  4. IO流的操作规律

    输入流和输出流相对于内存设备而言. 将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出. 字符流的由来:其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表.获取对应的文字.在 ...

  5. Java API —— IO流(数据操作流 & 内存操作流 & 打印流 & 标准输入输出流 & 随机访问流 & 合并流 & 序列化流 & Properties & NIO)

    1.操作基本数据类型的流     1) 操作基本数据类型 · DataInputStream:数据输入流允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型.应用程序可以使用数据输出 ...

  6. Java文件IO流的操作总结

    Java中的IO操作涉及到的概念及相关类很多,很容易弄混,今天特来整理总结一下,并附上一份完整的文件操作的代码. 概念解析 读和写 流就是管道,向管道里面写数据用输出流:write 从管道里面读数据, ...

  7. IO流常规操作

    IO流 IO就是输入输出,IO设备在计算机中起着举足轻重的作用,IO流也就是输入输出流,用来交互数据,程序和程序交互,程序也可以和网络等媒介交互. 一.IO流的分类 要分类,肯定得站得不同角度来看这个 ...

  8. JAVA学习第五十一课 — IO流(五)流的操作基本规律

    转换流: InputStreamReader:字节到字符的桥梁.解码 OutputStreamWriter:字符到字节的桥梁.编码 流的基本规律 1.明白源和汇 源:InputStream.Reade ...

  9. Java语言中IO流的操作规律学习笔记

    1,明确源和目的. 数据源:就是需要读取,可以使用两个体系:InputStream.Reader: 数据汇:就是需要写入,可以使用两个体系:OutputStream.Writer: 总结: 读:就是把 ...

随机推荐

  1. 用jquery制作一个简单的导航栏

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. OSGi规范概要

    目前最新的OSGi规范是2012年7月发布的Release 5,Version5.0(后文简称为R5.0)版本,该规范定义了Java模块化系统所涉及的各种场景(开发.打包.部署.更新和交互等),以及其 ...

  3. linux 从百度网盘下载文件的方法

    linux 从百度网盘下载文件的方法 发表于2015 年 月 日由shenwang 方法1.wget wget是在Linux下开发的开放源代码的软件,作者是Hrvoje Niksic,后来被移植到包括 ...

  4. Qt 槽函数的使用

    今天在代码中遇到这样一个问题,自己感觉槽和函数都写的没错,但是就是不执行槽函数,因为是一个定时器的使用,即定时时间到了就执行槽函数. SeventhWizardPage::SeventhWizardP ...

  5. struts-tiles学习笔记

    网上搜了一些,稀里糊涂的,要么是代码不全,要么是版本不对,还是去struts官网大概学习了一下 http://struts.apache.org/development/1.x/struts-tile ...

  6. linux学习笔记4--命令mkdir

    linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录. mkdir命令用来创建目录.该命令创建由dirname命名 ...

  7. SQL Server DTS向导,字段转换出现202和200错误

    当使用SQL Server 2012的DTS向导(Import and Export Data/导入导出数据)时,会出现如下问题: 当来源数据直接使用表的时候,没有任何问题 但如果来源数据是查询时,就 ...

  8. Enable Authentication on MongoDB

    1.Connect to the server using the mongo shell mongo mongodb://localhost:27017 2.Create the user admi ...

  9. wget命令 -c断点续传

    wget -O   wordpress.zip http://www.linuxde.net/download.aspx?id=1080 下载文件在指定位置并进行重命名 -O file       - ...

  10. Tuning 04 Sizing the Buffer Cache

    Buffer Cache 特性 The buffer cache holds copies of the data blocks from the data files. Because the bu ...