嗨喽,小乐又来了,今天要给大家送上的技术文章是Java重点知识-IO流。

先来看看IO流的思维导图吧。

一、 File

在Java中,Everything is Object!所以在文件中,也不例外!在Java中,可以用 File类来表示一个与硬盘上文件联系!!!注意:

1、File仅代表一个联系,可能文件存在,也可能不存在;

2、这里的文件可以是文件,也可以是文件夹;

在常用类中已经详细讲过File,此处不在讲解

二、 IO流

1、流概念

流即流动、流向,从一端流向另一端。如水流:从山里流向到人家;车流:从公司流动到

家里;声音流:从发出者流动到对方的耳朵里。

文件流:从一端流动到另一端,即从java内存流动到存储介质中。存储介质包括:硬盘文件、数据库与网络等节点(数据源)。记住:一切以java内存为中心。

2、 数据源

data source. 提供原始数据的原始媒介。常见的:数据库、文件、其他程序、内存、网络连接、IO设备。

数据源就像水箱,流就像水管中流着的水流,程序就是我们最终的用户。 流是一个抽

象、动态的概念,是一连串连续动态的数据集合。

3、IO流分类

由此可见,IO流很庞大,从不同角度进行分类

1)、数据分类

按处理数据单位分为:字节流和字符流。处理数据是音频、视频、doc、文本等一切为字节流,仅能处理文本的为字符流。 字节流和字符流的用法几乎完全一致,区别在于它们所操作的数据单元不同,字节流(8 位)、字符流(16 位),字节流主要由 InputStream 和OutputStream作为基类,字符流主要由Reader 和 Writer作为基类。

2)、流向分类

输入流和输出流。从节点到 java 内存叫输入流,从 java 内存到节点叫输出流。Java 的输入流主要由InputStream和Reader作为基类,输出流主要由OutputStream和Writer作为基类。

3)、功能分类

节点流和处理流。从/向一个特定的I/0设备(磁盘、网络等)读写数据的流称为节点流,也常被称为低级流。 处理流则对于一个已存在的节点流进行连接或封装,常被称为高级流(装饰器设计模式)。处理流为增强、提升性能的,本身不具备直接操作节点的能力。如扩音器,就是放大声音的。 节点流处于io操作的第一线,所有操作必须通过他们进行;处理流可以对其他流 进行处理(提高效率或操作灵活性).

处理流的功能主要体现在:

a、性能的提高:主要以增加缓冲的方式来提高输入/输出的效率 ;

b、操作的便捷:提供了系列便捷的方法来一次输入/输出大批量内容

4、重点掌握

使用流抽象的概念,屏蔽了实际的 I/O设备中处理数据的细节。

5、操作 IO流的步骤

操作IO就跟搬家是同一个道理

核心步骤如下

1)、建立联系

2)、选择流

3)、操作:写出 读取

4)、释放资源(程序中打开的文件 IO 资源不属于内存中的资源,垃圾回收无法回收,

需要显示关闭。)

好勒,关于IO流的概念和基础知识点就先讲到这,接下来请看IO流的主要内容:输入流和输出流。乐字节原创,请多关注乐字节。

乐字节Java之file、IO流基础知识和操作步骤的更多相关文章

  1. java中File IO流的笔记

    1.File文件的属性和操作 boolean exists( )  判断文件或目录是否存在boolean isFile( )  判断是否是文件boolean isDirectory( ) 判断是否是目 ...

  2. java中关于IO流的知识总结(重点介绍文件流的使用)

    今天做软件构造实验一的时候,用到了java文件流的使用,因为之前学的不是很踏实,于是决定今天好好总结一下, 也方便以后的回顾. 首先,要分清IO流中的一些基础划分: 按照数据流的方向不同可以分为:输入 ...

  3. Java中的IO流之输入流|乐字节

    亲爱的乐字节的小伙伴们,小乐又来分享Java技术文章了.上一篇写到了IO流,这篇文章着重 谈谈输入流,再下次再说输出流. 点击回顾上一篇:乐字节Java之file.IO流基础知识和操作步骤 一. 输入 ...

  4. Java 中级IO流基础及主要API编程

    1. IO流基础知识,流 是字节从源到目的地的运行的轨迹,次序是有意义的, 字节会按照次序进行传递, 比如Hello World 在下图中的传递的轨迹.该图形象的解释了IO中流的概念.流中全是字节.2 ...

  5. Java中的IO流之输出流|乐字节

    大家好,乐字节小乐又来了.上一篇给大家带来的是:Java中的IO流之输入流|乐字节,本文将继续讲述IO流之输出流.   一.输出流 1.抽象类:OutputStream 和 Writer Output ...

  6. Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream)

    Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存 ...

  7. 第54节:Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 // 简书作者:达叔小生 import java.io.File; public class Demo{ public static void main(Stri ...

  8. Java中的IO流总结

    Java中的IO流总结 1. 流的继承关系,以及字节流和字符流. 2. 节点流FileOutputStream和FileInputStream和处理流BufferedInputStream和Buffe ...

  9. Java当中的IO流(中)

    Java当中的IO流(中) 删除目录 import java.io.File; public class Demo{ public static void main(String[] args){ / ...

随机推荐

  1. Day16:小前端

    回到顶部 <style type="text/css"> body { height: 8000px; } h1 { color: #000; } img { posi ...

  2. 《挑战30天C++入门极限》新手入门:C++中堆内存(heap)的概念和操作方法

        新手入门:C++中堆内存(heap)的概念和操作方法 堆内存是什么呢? 我们知道在c/c++中定义的数组大小必需要事先定义好,他们通常是分配在静态内存空间或者是在栈内存空间内的,但是在实际工作 ...

  3. Leetcode32. 最长有效括号

    32. 最长有效括号 做法 \(f_{i}\)以\(i\)结尾的最长匹配 前提为\(s[i]=')'\) \(s[i-1]='('\),则\(f[i]=f[i-2]+2\) \(s[i-1]=')'\ ...

  4. 标准ACL详解

  5. HTML5+和MUI页面操作

    最近总是碰到针对页面的一些操作,以下是针对webview的一些简单方法以及个人理解.更多详尽的内容请参考标准文档:http://www.html5plus.org/doc/zh_cn/webview. ...

  6. Momentum Contrast for Unsupervised Visual Representation Learning (MoCo)

    Momentum Contrast for Unsupervised Visual Representation Learning 一.Methods Previously Proposed 1. E ...

  7. 【转】iPhone手机获取uuid 安装测试app

    iPhone手机获取uuid 安装测试app UDID是一种iOS设备的特殊识别码.除序号之外,每台ios装置都另有一组独一无二的号码,我们就称之为识别码( Unique Device Identif ...

  8. 蓝牙BLE: 蓝牙4.0 BLE广播数据解析(转)

    BLE 设备工作的第一步就是向外广播数据.广播数据中带有设备相关的信息.本文主要说一下 BLE 的广播中的数据的规范以及广播包的解析. 1. 广播模式 BLE 中有两种角色 Central 和 Per ...

  9. Variance Inflation Factor (VIF) 方差膨胀因子解释_附python脚本

    python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...

  10. Docs-.NET-C#-指南-语言参考-关键字-值类型:可以 null 的值类型

    ylbtech-Docs-.NET-C#-指南-语言参考-关键字-值类型:可以 null 的值类型 1.返回顶部 1. Nullable value types (C# reference) 2019 ...