• 想要知道开发时,使用哪个流对象, 只要通过四个明确即可.
  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. THINKPHP3.2视频教程

    http://edu.51cto.com/lesson/id-24504.html lunix视频教程 http://bbs.lampbrother.net/read-htm-tid-161465.h ...

  2. 2015·Fool's Day·NND

    本博文没有主旨,仅仅是记录. ============================ Date:2015/4/1 - April Fool's Day! Addr:ZhongHai ======== ...

  3. erlang supervisor中启动普通的进程

    文字部分转自: http://1234n.com/?post/qou3eb supervisor的子进程 一开始使用supervisor的时候,我用的是init/1返回子进程规格列表的方式,并且所有子 ...

  4. makefile之findstring函数

    #$(findstring <find>,<in> ) #功能:在字串<in>中查找<find>字串. #返回:如果找到,那么返回<find> ...

  5. 蓝桥杯第五届B组 李白打酒

    外面的小雨下着,风吹着,在实验室敲着代码 时隔一年之后再次做这道题,依然神一样的回溯出来: 标题:李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他 ...

  6. ruby之各种概念

    一.引言 刚开始接触ruby,遇到问题于是上网查资料,但是有时候却又看不懂,这很大一部分原因是我不知道一些关于ruby的概念名词是什么意思,所以看了别人的回答也理解不了. 二.各种名词 ruby:这个 ...

  7. pow函数

    pow函数如果直接强制类型转换成int,会导致精度的损失.如果是int的幂计算,建议重写函数.或者用double型进行计算.

  8. gm: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory

    安装gm库产生问题 解决方案: # cat /etc/ld.so.confinclude ld.so.conf.d/*.conf# echo "/usr/local/lib" &g ...

  9. hdu6053 TrickGCD 容斥原理

    /** 题目:hdu6053 TrickGCD 链接:http://acm.hdu.edu.cn/showproblem.php?pid=6053 题意:You are given an array ...

  10. jQuery插件学习笔记

    近期在研究jQuery插件,插件编写的目的是给已经有的一系列方法或函数做一个封装,以便在其它地方反复使用,方便后期维护. JQuery除了提供一个简单.有效的方式进行管理元素以及脚本,它还还提供了例外 ...