JavaSE之IO流

一、IO

1.1 概述

​ 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。

I : input 输入

O : output 输出

1.2 分类

按处理数据类型的不同,分为字节流和字符流

按数据流向的不同,分为输入流和输出流。(入和出是相对于内存来讲的)

image-20240812183959998

按功能不同,分为节点流和处理流

  • 节点流:直接操作数据源
  • 处理流:对其他流进行处理

1.3 四大抽象类

image-20240812184032572

1.3.1 InputStream

image-20240812184059138

1.3.2 OutputStream

image-20240812184126437

1.3.3 Reader

image-20240812184146714

1.3.4 Writer

image-20240812184206472

1.4 文件流

文件流:用于打开文件链接,操作数据

FileInputStream 字节输入

FileOutputStream 字节输出

FileReader 字符输入

FileWriter 字符输出

1.4.1 FileInputstream

1.4.1.1 概述

FileInputstream 字节输入流,用于把某个文件已字节的形式读取出来

想要读取一个文件,首先得找到这个文件

怎么找呢? 1 相对路径 2 绝对路径

相对路径:以当前文件为准,去找其他文件, ./表示当前目录, …/表示上级目录, …/…/

绝对路径:以系统跟盘符为准,比如D盘 E盘

1.4.1.2 常用方法

image-20240812184755525

1.4.1.3 Read使用

image-20240812184820792

image-20240812184830066

1.4.1.4 Read重载使用

image-20240812184859237

1.4.2 FileReader

1.4.2.1 概述

FileReader一次读取一个字符,也就是两字节,而Unicode编码也是2字节

所以 读取文本文件时,不会出现乱码问题

1.4.2.2 使用方式

image-20240812185044417

1.4.3 FileOutputstream

1.4.3.1 概述

FileOutputstream 是字节输出流,用于将内存中数据写出去

需要传入文件路径,如果该文件不存在,则会自动创建(但是不会创建目录)

1.4.3.2 常用方法

image-20240812185317356

1.4.3.3 使用方式

image-20240812185337752

1.4.4 FileWriter

image-20240812185400837

1.5 缓冲流

image-20240812185418798

特点:

  • 主要是为了提高效率而存在的,减少物理读取次数
  • 提供readLine()、newLine()这样的便捷的方法(针对缓冲字符流)
  • 在读取和写入时,会有缓存部分,调用flush为刷新缓存,将内存数据写入到磁盘

1.5.1 BufferedReader

image-20240812185530189

1.5.2 BufferedWriter

image-20240812185606318

1.6 转换流

image-20240812185629423

1.6.1 InputStreamReader

image-20240812185655549

1.6.2 OutputStreamWriter

image-20240812185725745

1.6.3 处理乱码问题

image-20240812185745429

6153)]

1.6.2 OutputStreamWriter

[外链图片转存中…(img-bxvgSZf0-1723460586154)]

1.6.3 处理乱码问题

[外链图片转存中…(img-fSN1JLmk-1723460586154)]

暂时先到这里啦!剩下的一般明天就会写完,如果对你有帮助的话就点个赞吧

  • 19
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值