【处理流】

处理流可以隐藏底层设备上节点流的差异,并对外提供更加方便的输入/输出的方法。

使用处理流的思路:

使用处理流来包装节点流,程序通过处理流来执行输入输出功能,让节点流与底层的I/O设备、文件交互。

使用处理流的主要优势:

1.对于开发人员,使用处理流进行输入/输出操作更加简单。

2.使用处理流的执行效率更高。

【 区分处理流和节点流 】

只要流的构造方法参数不是一个物理节点,而是一个已经存在的流,那么这种流一定是处理流。

所有的节点流都是直接以物理IO节点作为构造方法的参数的。

【测试1:】

  1. package com.Higgin.part4;
  2.  
  3. import java.io.FileOutputStream;
  4. import java.io.IOException;
  5. import java.io.PrintStream;
  6.  
  7. /**
  8. * 处理流
  9. */
  10. public class PrintStreamDemo {
  11. public static void main(String[] args) throws IOException {
  12. FileOutputStream fos=new FileOutputStream("c://testJavaIO/sss.java"); //定义一个节点输出流
  13. PrintStream ps=new PrintStream(fos,true,"UTF-8"); //用处理流PrintStream包装 fos节点输出流
    //PrintStream ps=new PrintStream(fos); //不考虑乱码问题这样包装即可
  14. ps.println("啦啦啦啦"); //使用PrintStream执行输出
  15. ps.println("Higgin Cui");
  16. ps.close(); //使用处理流包装了底层的节点流之后,最后只需要关闭最上层的处理流即可。
  17. //关闭最上层的处理流的时候,系统会自动关闭被该处理流包装的节点流
  18. }
  19. }

【程序运行之前】

【运行之后】

【小结】

首先定义了一个节点输出流FileOutputStream,

然后使用程序PrintStream包装了该节点输出流,

最后使用PrintStream的println()方法输出。

PrintStream类的输出功能非常强大,通常,如果需要输出文本内容,都应该将输出流包装成PrintStream后进行输出。

【注意点】

在使用处理流包装了底层的节点之后,只要关闭处理流即可,关闭处理流时,系统会自动关闭被该处理流包装的节点流。

IO流06_处理流的更多相关文章

  1. java.IO输入输出流:过滤流:buffer流和data流

    java.io使用了适配器模式装饰模式等设计模式来解决字符流的套接和输入输出问题. 字节流只能一次处理一个字节,为了更方便的操作数据,便加入了套接流. 问题引入:缓冲流为什么比普通的文件字节流效率高? ...

  2. java IO流 之 其他流

    一.内存操作流(ByteArrayInputStream.ByteArrayOutputStream) (一).   public class ByteArrayInputStream extends ...

  3. java IO流 之 字符流

    字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什 ...

  4. JAVA里面的IO流(一)分类2(节点流和处理流及构造方法概要)

    IO流根据处理对象的不同分为节点流和处理流. 直接对文件进行处理的流为节点流: 对流进行包装从而实现对文件的优化处理的流为处理流. 节点流类型: 可以看出,节点流主要分这几大类: 文件流 文件流构造方 ...

  5. JAVA IO 字节流与字符流

    文章出自:听云博客 题主将以三个章节的篇幅来讲解JAVA IO的内容 . 第一节JAVA IO包的框架体系和源码分析,第二节,序列化反序列化和IO的设计模块,第三节异步IO. 本文是第一节.     ...

  6. 【JAVA IO流之字符流】

    一.概述. java对数据的操作是通过流的方式.java用于操作流的对象都在IO包中.流按照操作数据不同分为两种,字节流和字符流.流按照流向分为输入流,输出流. 输入输出的“入”和“出”是相当于内存来 ...

  7. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*; public class Index{ public sta ...

  8. Java:IO流之转换流

    IO流的基本流情况: 字符流:                字符流缓冲区: FileReader              BufferedReader FileWriter             ...

  9. Java:IO流之字符流Reader、Writer详解

    java.io包中:字符流   字符流的两个抽象基类:   Reader         Writer   文件的读取:Reader抽象类(java.io包中) 直接子类的构造方法: FileRead ...

随机推荐

  1. SQLite使用教程10 运算符

    SQLite 运算符 SQLite 运算符是什么? 运算符是一个保留字或字符,主要用于 SQLite 语句的 WHERE 子句中执行操作,如比较和算术运算. 运算符用于指定 SQLite 语句中的条件 ...

  2. mac ssh会话复制

    第一次登录服务器,需要输入账户.密码, 如果你需要重新开启另一个终端窗口,再次登录此服务器不需要输入账户.密码(类似免登).你只要让本地保存你的SSH会话即可. Mac 保持会话,需要在修改 ssh配 ...

  3. Android 常用的快捷键(随时更新)

    android studio 是google出的一款好用不贵的ide,好像是powerd by idea的那个公司,反正风格上差不多.下面是android studio常用的快捷键设置,记录一下自己用 ...

  4. OO ALV 学习参考

      http://blog.csdn.net/sapliumeng/article/details/18653491 一.ALV介绍 The ALV Grid Control (ALV = SAPLi ...

  5. SQLyog破解版:SQLyog MySQL GUI 11.2.4-0 Ultimate中文版 带序列号【转载】

    SQLyog 是一个易于使用的.快速而简洁的图形化管理MYSQL数据库的工具,目前(2013年9月11日)最新版为:SQLyog Ultimate – MySQL GUI v11.24,本站已亲测比较 ...

  6. hdu 5120 Intersection 圆环面积交

    Intersection Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5 ...

  7. Android开发环境中的概念和工具介绍

    最近学习Android开发,以前使用C/C++多一些,现在再补点Java知识,不管是哪种语言,都不过是一种工具而已,真的学起来,大同小异,无谓优劣.学习Android编程肯定是要先从环境搭建开始,无论 ...

  8. 编写函数,以读模式打开一个文件,将其内容读入到一个string的vector中,将每一行作为一个对立的元素存于vector中

    #include<iostream> #include<string> #include<vector> #include<fstream> using ...

  9. 一个.Net程序员:既然选择了编程,只管风雨兼程(转)

    一个.Net程序员:既然选择了编程,只管风雨兼程 一次会议记录是不会有人感兴趣的,做标题党也是不道德的.所以,走了个折衷的路线,标题不叫会议记录, 内容不纯总结,技术加吐槽,经验加总结. 对于一个程序 ...

  10. C++中如何修改const变量

      一.结论 声明:不同于C语言的const变量修改问题(可以通过指针间接修改const变量的值),这里只讨论C++ 里的const. C++ const 修饰符,表示常量,即如果以后保证不会修改则声 ...