`
strongboy789
  • 浏览: 56417 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类

流操作规则总结

    博客分类:
  • java
阅读更多

   流对象有很多,不知道用哪个,这是很多初学者所郁闷的事情,但是如果你掌握一些流的操作小规则学起来就轻松多了

 

再选取流操作对象时首先要明确以下几点
1,明确源和目的
 源:输入流 InputStream Reader
 目的:输出流 OutputStream Writer

2,操纵的数据是不是纯文本

 是:字符流
 不是: 字节流
3,当体系明确后,再明确要使用哪个对象
 通过设备来区分
 原设备: 内存,硬盘,键盘
 目的设备: 内存,硬盘,控制台

 

 

举例

1,将一个文本文件中数据复制到另一个文件,复制文本文件
 源:因为是源,所以使用读取流。InputStream Reader
 是不是操作文本文件
 是!可以选择Reader
 这样体系就明确了

 接下来明确要使用该体系中的哪个对象。
 明确设备:硬盘上一个文件
 Reader 体系中可以操作文件的对像是 FileReader
 是否需要提高效率:是!加入Reader 体系缓冲区 BufferedReader
 
 FileReader fr = new FileReader("c:\\src.txt");
 BufferedReader bufr = new BufferedReader(fr);

 目的:使用输出流 OutputStream Writer
 是否是纯文本。
 是!Writer
 设备:硬盘,一个文件。
 Writer体系中可以操作文件的对像是FileWriter
 是否需要提高效率:是!加入 Writer 体系中缓冲区 BufferedWriter

 FileWriter fw = new FileWriter("d:\\src_copy.txt");
 BufferedWriter bufw = new BufferedWriter(fw)

 

 

2,将一个图片文件复制到另一个文件,复制图片文件
 源:因为是源,所以使用读取流。InputStream Reader
 是不是操作文本文件
 不是!可以选择 InputStream
 这样体系就明确了

 接下来明确要使用该体系中的哪个对象。
 明确设备:硬盘上一个文件
 InputStream 体系中可以操作文件的对像是 FileInputStream
 是否需要提高效率:是!加入 InputStream 体系缓冲区 BufferedInputStream
 
 FileInputStream fis = new FileInputStream("c:\\tupian.bmp");
 BufferedInputStream bis = new BufferedInputStream(fis);

 目的:使用输出流 OutputStream Writer
 是否是纯文本。
 不是!OutputStream
 设备:硬盘,一个文件。
 OutputStream 体系中可以操作文件的对像是 FileOutputStream

 是否需要提高效率:是!加入Writer体系中缓冲区 BufferedOutputStream

 FileOutputStream fos = new FileOutputStream("d:\\tupian_copy.bmp");
 BufferedOutputStream bos = new BufferedOutputStream(fos)

分享到:
评论

相关推荐

    Java基础知识点总结.docx

    二十、 正则表达式:其实是用来操作字符串的一些规则★★★☆ 135 二十一、 设计模式★★★★★ 136 设计模式简介 136 单例设计模式:★★★★★ 156 工厂模式★★★★★ 159 抽象工厂模式★★★★★ 163 建造者模式...

    UI(用户界面)设计规则和规范

    界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。...目前流行的界面风格有三种方式:多窗体、单窗体以及资源管理器风格,无论那种风格,本文总结的十条规则是应该被重视的。

    java 编程入门思考

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

    C语言解析教程(原书第4版)(美) 凯利.pdf

    9.3 操作符的优先级和结合性的总结 9.4 在函数中使用结构 9.5 结构的初始化 9.6 例子:玩扑克牌 9.7 联合 9.8 位字段 9.9 例子:访问位和字节 9.10 adt堆栈 9.11 总结 9.12 练习 第10章 结构和列表处理 10.1 自引用...

    java 面试题 总结

    ArrayList和Vector都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector...

    观辰软件OA启航版 v2.5

    支持图形化界面配置与查询、一个流程同时驱动多个数据表单、“外部载入”(由已存在的表单数据发起流程)和“新建数据”(发起流程后在流程里新建表单数据)双模式、工作流活动表单动作规则自定义(同一张表单在流程...

    Java语言基础下载

    内容总结 13 独立实践 14 第二章: 面向对象概述 15 学习目标 15 面向对象(Object Oriented) 16 面向对象的主要特性 18 抽象(Abstraction) 18 封装(Encapsulation): 19 多态(Polymorphism) 20 面向对象的优点 22 ...

    java7源码-java-nio-master:Java

    Io流共涉及40多个类,这些类看上去很杂乱,但实际上很有规则,而且彼此之间存在非常紧密的联系, Java Io流的40多个类都是从如下4个抽象类基类中派生出来的。 InputStream/Reader: 所有的输入流的基类,前者是字节...

    C#实训教程

    2.5 流控制 28 2.6 数组 37 2.7 命名空间 38 2.8 C#预处理器指令 44 2.9 C#编程规则 46 2.10 内容总结 50 2.11 独立实践 50 3 对象和结构 52 3.1 类和结构 52 3.2 类和成员 53 3.3 构造函数 60 3.4 结构 65 3.5 部分...

    Activiti6.0教程例子下载

    工作流(workflow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档...

    Thinking in Java 中文第四版+习题答案

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.3 反复 3.2.6 中断和继续 3.2.7 切换 3.3 总结 3.4 练习 第4章 ...

    Think in Java(中文版)chm格式

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6...

    Java初学者入门教学

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

    JAVA_Thinking in Java

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

    leetcode分类-backend-learning:Kerno后端方向学习仓库

    Java面向对象语法规则总结 工具类(字符串与可变字符串,日期类型转换与格式化,自定义异常,输入流与输出流的实现,线程控制,并发与锁) 数据类型操作 字符串操作 数学运算 时间日期处理 异常处理 文件处理 流处理...

    thinkinjava

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

    ThinkInJava

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

    Thinking in Java简体中文(全)

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

    java联想(中文)

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

    Thinking in Java(中文版 由yyc,spirit整理).chm

    3.1.12 运算符常规操作规则 3.1.13 造型运算符 3.1.14 Java没有“sizeof” 3.1.15 复习计算顺序 3.1.16 运算符总结 3.2 执行控制 3.2.1 真和假 3.2.2 if-else 3.2.3 反复 3.2.4 do-while 3.2.5 for 3.2.6 中断和继续...

Global site tag (gtag.js) - Google Analytics