【处理流】

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

使用处理流的思路:

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

使用处理流的主要优势:

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

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

【 区分处理流和节点流 】

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

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

【测试1:】

package com.Higgin.part4;

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

【程序运行之前】

【运行之后】

【小结】

首先定义了一个节点输出流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. CSS链接、光标、DHTML、缩放

    个属性 18.2 CSS中光标的使用(更详细可看文档) 属性名称                属性值                说明 cursor                 auto    ...

  2. 如何对SQL Server 2005进行设置以允许远程连接(转载)

    如何对SQL Server 2005进行设置以允许远程连接(转载) 在尝试从远程计算机连接到 Microsoft SQL Server 2005 实例时,可能会接收到错误消息.在使用任何程序连接到 S ...

  3. ModSecurity CRS笔记[转]

    转自:http://danqingdani.blog.163.com/blog/static/186094195201472304841643/ ModSecurity的规则因为奇怪的正则(可读性差? ...

  4. ZZTHX-线程锁

    以前一直在做卡乐付,悲剧的是项目中的余额查询,超级转账和刷卡器相关的东西已经开发好了,我对这块还是比较好奇和感兴趣的,在项目空闲的时候我就开始尝试熟悉和了解这块的业务和代码.实践出真理,只有在实践中才 ...

  5. 【52】写了placement new也要写placement delete

    1.Widget* pw = new Widget; 调用了两个方法:第一个方法是operator new 负责分配内存:第二个方法是在分配的内存上构造Widget,即调用Widget的default ...

  6. PCL入门—点云操作 定义变量 显示点云 存储

    // 定义相关变量 pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_ptr (new pcl::PointCloud<pcl::PointXYZ& ...

  7. [Whole Web] [Node.js] Using npm run to launch local scripts

    npm run allows you to configure scripts inside of your package.json file which can access locally in ...

  8. windows远程关机重启

    windows远程关机 http://lsscto.blog.51cto.com/779396/245681 shutdown http://baike.baidu.com/view/596875.h ...

  9. 文件和目录之设置用户ID和设置组ID

    与一个进程相关联的ID有6个或更多,它们如表4-4所示: 表4-4 与每个进程相关联的用户ID和组ID 实际用户ID                            我们实际上是谁 实际组ID ...

  10. 你真的会用 SDWebImage?

    SDWebImage作为目前最受欢迎的图片下载第三方框架,使用率很高.但是你真的会用吗?本文接下来将通过例子分析如何合理使用SDWebImage. 使用场景:自定义的UITableViewCell上有 ...