java io流

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

一、文件

1、概念

1、文件就是保存数据的地方,比如:文字、视频

2、文件流
在这里插入图片描述
输入和输出是针对内存而言的。

2、常用的文件操作

1)创建文件

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

练习:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2)获取文件信息

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

3)目录操作

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

二、IO流原理和分类

1、概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
一个字符对应几个字节?跟编码有关系

字符流的效率比字节流高

但是字节流的好处在于操作二进制文件,可以保证操作是无损的操作

字符流操作文本文件比较好,字节流操作二进制文件比较好

InputStream、OutputStream都是抽象类,不能直接实例化
Reader、Writer也是抽象类,不能直接实例化
在使用的时候创建它们的实现子类才可以

在这里插入图片描述
流和文件的关系:

在这里插入图片描述

2、IO常用类

在这里插入图片描述
关系图:
在这里插入图片描述

1)FileInputStream

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

2)FileOutputStream

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

3)FileInputStream和FileOutputStream综合应用------文件拷贝

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

4)文件字符流说明(FileReader和FileWriter)

在这里插入图片描述

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

5)FileReader

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

6)FileWriter

在这里插入图片描述
细节:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7)节点流和处理流

在这里插入图片描述
在这里插入图片描述
节点流是对特定的数据源进行操作的

数据源就是存放数据的地方

在这里插入图片描述
处理流也叫包装流

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

writer也是类似:
在这里插入图片描述

bufferedWriter中含有writer的属性,就意味着bufferedWriter可以封装任意一个writer的子类,这个时候在操作数据源既可以是对文件,也可以是对数组进行操作,这样就相当于包装流bufferedWriter的功能更加强大了

在这里插入图片描述
在这里插入图片描述
节点流和处理流比较
在这里插入图片描述
模拟修饰器的设计模式:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

8)bufferedReader

在这里插入图片描述
在这里插入图片描述
关闭时,只需要关闭外层流即可,因为实际上工作的时节点流

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

8)bufferedWriter

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

9)buffered拷贝

在这里插入图片描述readLine读取一行内容,但是没有换行
在这里插入图片描述
在这里插入图片描述

10)bufferedInputStream

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

11)bufferedOutputStream

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

12)字节处理流拷贝文件

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

13)对象处理流ObjectOutputStream和ObjectInputStream

在这里插入图片描述
为了:能够将 基本数据类型或者对象 进行序列化和反序列化

在这里插入图片描述
如果要让对象支持序列化,必须要实现两个接口中的一个

  • serializable标记接口,没有方法
  • externalizable

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

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

在这里插入图片描述
objectInputStream类

在这里插入图片描述
提出dog类:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对象处理流使用细节
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14)标准输入输出流

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

在这里插入图片描述
在这里插入图片描述
System.in代表的是一个流,标准输入流
System.out代表的是一个流,标准输出流

15)转化流 InputStreamReader和 OutputStreamWriter

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

如果文件的编码不是utf-8会出现问题:
在这里插入图片描述
关键:没有指定文件的读取编码方式
在这里插入图片描述
1)InputStreamReader
在这里插入图片描述
在这里插入图片描述

InputStreamReader是属于字符流的,可以实现从字节流转化为字符流

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

2)OutputStreamWriter

字节流-》字符流
在这里插入图片描述
当处理纯文本数据的时候,使用字符流的效率更高

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

16)打印流 PrintStream和PrintWriter

打印流只有输出流,没有输入流

在这里插入图片描述
(1)PrintStream 字节流

可以把信息打印到显示器、文件等等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

(2)PrintWriter 字符流

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

三、properties类

1、引入

在这里插入图片描述
传统的方案:
在这里插入图片描述
如果我们要求得到指定的ip值
在这里插入图片描述

2、properties读文件

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

3、properties修改文件

properties父类是Hashtable,底层就是Hashtable 核心方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、练习

1、

在这里插入图片描述

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

2、

在这里插入图片描述

在这里插入图片描述

3、

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

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值