JavaSE IO流 Vol.1 基础 入门

1. 前言


· IO 流 专题 传送门:

   · JavaSE IO流 Vol.1 基础 入门

   · JavaSE IO流 Vol.2 节点流 - 输入流 入门

   · JavaSE IO流 Vol.3 节点流 - 输出流 入门

   · JavaSE IO流 Vol.4 处理流 入门


· 本文章是用于 个人学习过程中 整理知识点的帖子,主题为:JavaSE IO流 Vol.1 基础 入门

· 由于 第五节 包含知识点过于密集,所以部分知识点将作为新章节进行拆分。

· 本文章出现的 遗漏、错误 欢迎点开这篇文章的各位指出。

· 本文章的知识大纲根据 韩顺平老师 JavaSE 教学视频 进行编写。

感谢韩顺平老师带来的优质教学和对教育作出的贡献


2. 相关概念


文件

· 文件,指的是 保存数据的地方


· 流,指的是 数据数据源和程序之间 经过的 路径


文件流

· 文件在程序中是以 流的形式 来操作的


输入流 & 输出流

· 输入流:数据从 数据源到程序 的路径 。

· 输出流:数据从 程序到数据源 的路径 。


3. 文件


文件结构体系

· 组成体系
在这里插入图片描述
· 类结构 [ 构造器 ]
在这里插入图片描述

文件的创建

指令解释
new File ( String pathname )在指定路径中创建 File 对象
new File ( File parent , String child )在父目录中 创建 File 对象
new File ( String paren , String child )在父目录中 的 子目录中 创建 File 对象

· 核心创建指令:file.createNewFile ()


文件的常用方法

信息的相关操作解释
file.getName ( )获取文件 名称
file.getAbsolutePath ( )获取文件 绝对路径
file.getParent ( )获取文件 父目录
file.length ( )获取文件 大小 ( 字节 )
file.exists ( )判断文件 是否存在
file.isFile ( )判断文件 是否为文件
file.isDirectory ( )判断文件 是否为目录
目录的相关操作解释
file.delete ( )删除空目录或空文件
file.mkdir ( )创建一级目录
file.mkdirs ( )创建多级目录

4. IO流


基本介绍

· IO流 是 Input / Output 的缩写,其使用非常广泛,用于处理数据传输,例如:读写文件、网络通讯 等。


相关原理

· 在 Java 程序中,对于数据的 输入/输出 操作均以 “流 [ Stream ] ” 的方式进行 。

· Java.io 包 提供了各种 “流” 类和接口,用以获取不同种类的数据,并通过方法输入或输出数据 。

· Java.io 包 中的类均为 抽象类 。为的是规范所有子类要实现其功能,就必须继承 。


流的分类

· 按 操作数据单位 分为:字节流、字符流 。

· 按 数据流的流向 分为:输入流、输出流 。

· 按 流的角色 分为:节点流、处理流/包装流 。

抽象基类字节流字符流
输入流InputStreamReader
输出流OutputStreamWriter

5. 节点流 和 处理流

在这里插入图片描述

● 节点流

· 传送门:JavaSE IO流 Vol.2 节点流 - 输入流 入门

· 传送门:JavaSE IO流 Vol.3 节点流 - 输出流 入门

· 节点流可以从一个特定的数据源进行读写数据操作 。 例如:FileReader、FileWriter


● 处理流

· 传送门:JavaSE IO流 Vol.4 处理流 入门

· 处理流,又称作包装流 。 处理流 就是 节点流 的 包装类。

· 它是连接在已存在流之上的,为程序提供更为高效的读写数据功能。例如:BufferedReader、BufferedWriter

· 每一个处理流都可以存放不同类型的节点流,进行更为便捷的处理 。


● 装饰器模式

· 装饰器模式是一种设计模式,通过包装传入的类进行更加多元化的数据操作 。

· 处理流的实现就是装饰器模式的一种典型案例 。

· 下面就根据 模拟 字符缓冲输入流 BufferedReader 来讲解装饰器模式:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


● 标准流

· System 类提供了一套标准流供用户使用:最常用的莫属 System.in 和 System.out 。

标准流类型默认设备
System.inInputStream键盘
Systeam.outPrintStream显示器

标准输入

· System.in 是指 System 类的 in 属性,其属性结构为:public final static InputStream in = null

· System.in 的编译类型为:InputStream

· System.in 的运行类型为:BufferedInputStream


标准输出

· System.out 是指 System 类的 out 属性,其属性结构为:public final static PrintStream out = null

· System.out 的编译类型为:PrintStream

· System.out 的运行类型为:PrintStream


5. Properties 类


· 传送门:JavaSE 集合 Vol.2 Map 源码入门 (含截图分析)

知识点回顾

· Properties 实现类 继承自 HashTable 实现类,是 HashTable 的子类,同时它也实现了 Map 接口。

· Properties 存放数据的方式也是 键值对 形式。它的使用特点和 HashTable 一致。

· 另外 Properties 类 与父类 HashTable 一样,是线程安全的 。


使用场景

· Properties 最广泛的使用是:从 xxx.properties 文件中,这类文件的数据都是以 键值对的形式 进行存储的,例如:数据库数据。

· 将数据加载到 Properties 类对象,可以对数据进行高效读取和修改 。

· 对数据进行读取和修改的过程,就是使用了 节点流 。

· Properties 类 其实就是 集合 + IO流 的综合实现


基本使用

· 下面就根据 使用 Properties 类 执行 数据读取、数据修改、创建文件 进行演示:

数据读取

在这里插入图片描述

数据修改

在这里插入图片描述

创建文件

在这里插入图片描述


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值