Java IO详解(二)------流的分类

一、根据流向分为输入流和输出流:

  注意输入流和输出流是相对于程序而言的。

  输出:把程序(内存)中的内容输出到磁盘、光盘等存储设备中

     输入:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中

  综合起来:

二、根据传输数据单位分为字节流和字符流

  上面的也是 Java IO流中的四大基流。这四大基流都是抽象类,其他流都是继承于这四大基流的。

三、根据功能分为节点流和包装流

  节点流:可以从或向一个特定的地方(节点)读写数据。如FileReader.

  处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader.处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。

 操作 IO 流的模板:

  ①、创建源或目标对象

    输入:把文件中的数据流向到程序中,此时文件是 源,程序是目标

    输出:把程序中的数据流向到文件中,此时文件是目标,程序是源

  ②、创建 IO 流对象

    输入:创建输入流对象

    输出:创建输出流对象

  ③、具体的 IO 操作

  ④、关闭资源

    输入:输入流的 close() 方法

    输出:输出流的 close() 方法

注意:1、程序中打开的文件 IO 资源不属于内存里的资源,垃圾回收机制无法回收该资源。如果不关闭该资源,那么磁盘的文件将一直被程序引用着,不能删除也不能更改。所以应该手动调用 close() 方法关闭流资源

最后这是 Java IO 流的整体架构图,下面几篇博客将会详细讲解这些流:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的碎碎念

php写接口入门

了解JSON JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 ...

1.3K8
来自专栏流媒体人生

Yate教程1

From:http://yate.null.ro/pmwiki/index.php?n=Main.CppTutorial1

1162
来自专栏个人随笔

房上的猫:java中的包

包  1.作用:   (1)包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件   (2)防止命名冲突:     java中只有在不同包中的类...

3777
来自专栏草根专栏

用ASP.NET Core 2.0 建立规范的 REST API -- DELETE, UPDATE, PATCH 和 Log

本文所需的一些预备知识可以看这里: http://www.cnblogs.com/cgzl/p/9010978.html 和 http://www.cnblog...

1062
来自专栏大史住在大前端

webpack4.0各个击破(8)—— tapable篇

tapable是webpack的核心框架(4.0以上版本的API已经发生了变化),是一个基于事件流的框架,或者叫做发布订阅模式,或观察者模式,webpack的整...

1243
来自专栏编程

java编程思想之并发

编程问题中的相当一大部分都可以通过顺序编程来解决。然而,对于某些问题,如果能够并行的执行程序中的多个部分,则会变得非常方便甚至非常必要,这些部分要么可以并发执行...

2077
来自专栏Java帮帮-微信公众号-技术文章全总结

day27.MongoDB【Python教程】

集合:类似于关系数据库中的表,储存多个文档,结构不固定,如可以存储如下文档在一个集合中

1063
来自专栏开源优测

[快学Python3]模块和包

模块 在Python中模块可以理解为颗粒度更大的组织方式,其中可以包含类、函数、变量等等资源。 而为了更好的把一些基础服务提供给大家应用,Python提供了大量...

29411
来自专栏欧阳大哥的轮子

深入iOS系统底层之CPU寄存器介绍

计算机是一种数据处理设备,它由CPU和内存以及外部设备组成。CPU负责数据处理,内存负责存储,外部设备负责数据的输入和输出,它们之间通过总线连接在一起。CPU内...

1493
来自专栏Android常用基础

粗谈Java虚拟机之原理与结构

在学习java虚拟机之前,我们有必要先来了解下下class文件与dex文件。相比大家对这两文件都耳熟能详,但是对于初学者来说却是"听起声而不见其人"。下面我们就...

871

扫码关注云+社区