JAVASE-API-9--IO流(文件字符流、缓冲流、文件字节流、系统流/标准流) ---D18

复习:

  1. Map:存储的是键值对,健是唯一的。
    a) HashMap:底层基于数组+链表的结构。默认初始容量是16,默认加载因子是0.75f。如果指定了初始容量,经过运算会变成2n的形式。在扩容的时候默认每次增加一倍。允许存储null健和null值。异步式线程不安全
    b) Hashtable:底层基于数组+链表的结构。默认初始容量是11,默认加载因子是0.75f。如果指定了初始容量,指定多大就是多大。在扩容的时候是在当前容量的基础上增加一倍,然后再+1。不允许健或者值为null。同步式线程安全。
    c) 遍历映射:keySet、entrySet

  2. File:代表文件或者目录的类。File对象所代表的文件或者目录不一定真实存在,所以在操作File之前一般都会判断File的存在性。




    字节的定义:
    字节(Byte)是一种计量单位,表示数据量多少,他是计算机信息技术用于计算存储容量的一种计量单位。
    Byte即字节的意思,是java中的基本数据类型,用来声明字节型的变量,一个字节包含8个位,所以,byte类型的取值范围-128到127。

    字符的定义:
    字符是指计算机中使用的文字和符号,比如1、2、3、A、B、C、~!#¥%……&()–+、等等。



IO流

是一套用于传输数据的机制。IO – Input Output – 输入输出流。数据是从外部流向程序 – 输入流;数据是从程序流向外部 – 输出流。 读取文件 – 数据从文件流向了程序 – 输入流;向一个文件中写入数据 – 数据从程序流向了文件 – 输出流。
根据流的传输方向:输入流、输出流
根据流的传输形式:字符流、字节流
在这里插入图片描述
四个基本流都是抽象类。
数据的来源/目的地:磁盘、内存、外部设备、网络
向TXT文件中写入一个字符串 ----- 输出流、字符流、和文件相关的流 —FileWriter

文件字符流:

方法:
 FileWriter:创建新文件,如果指定的文件不存在,则将新文件作为操作的目标;如果指定的文件存在,则利用掉新文件覆盖掉原文件。
 write():写数据,数据不是直接写到文件中而是先写到缓冲区中,等缓冲区满了之后再将缓冲区中的数据一次性倒入文家中,但是缓冲区没有满程序就已结束,导致数据死在缓冲区中。
 flush():创刷缓冲区
 close():关闭流,释放文件允许别的流操作这个文件;留在关闭之前会自动冲刷一次缓冲区;以防有数据死在缓冲区中

FileWriter:写文件
在这里插入图片描述

流中的异常处理:

a) 将流对象放在try之外声明并且赋值为null, 放在try之内进行创建
b) 在关流之前需要判断流对象是否为null
c) 关流之后,需要将流置为null
d) 写完数据之后需要手动冲刷一次缓冲区,以防关流失败而没有自动冲刷导致数据死在缓冲区中
在这里插入图片描述
在这里插入图片描述

FileRead:读文件
在这里插入图片描述
在这里插入图片描述
练习:复制TXT文件
一个输入流读原文件,一个输出流将读出的内容写到新文件中
在这里插入图片描述

注意:Java中的原生字符流不能读取office组件(Word,Excel,PPT)—POI。
Java中字符流只能操作字符类文件,例如:txt/java/html


缓冲流

提供缓冲区的流
 BufferedReader – 缓冲输入流。利用其它的字符输入流来构建BufferedRead,提供了按行读取的方法实现高效读取。
 BufferedWriter – 缓冲输出流。提供了一个更大的缓冲区,提供了一个newLine()用于进行换行
 newLine():在不同的操作系统中,自动翻译为当前操作系统的换行符。

模式:针对一类问题的解决方案
设计模式:软件开发过程中,针对常见问题总结的解决方案
装饰设计模式:利用同类对象来构建本类对象,然后对该对象的部分功能进行改善或者增强的方式

BufferedReader:
在这里插入图片描述
BufferedWriter:
在这里插入图片描述

练习:统计Java代码的行数
找到Java文件 -> 按行读取
在这里插入图片描述




文件字节流

FileInputStream – 以字节形式来读取文件
FileOutputStream – 以字节形式向文件中写数据

FileInputStream:
在这里插入图片描述
FileOutputStream:
在这里插入图片描述

练习:复制文件统计复制时间
在这里插入图片描述



系统流/标准流

系统流都是字节流
System.in   标准输入流
System.out   标准输出流
System.err   标准错误流
System.out和System.err都可以用于打印数据,在打印的时候只是颜色的差别;System.out打印正常结果;System.err打印错误或者异常
在这里插入图片描述

了解:对内存操作
在这里插入图片描述

总结:

读文件:
a、创建对象
b、准备缓冲区(BufferedReader 不用)
c、定义变量来记录个数或用字符串来记录一行数据
d、读数据
e、关流

写文件:
a、创建对象
b、写数据
c、冲刷缓冲区(FileOutputStream 没有缓冲区)
d、关流


读文件:
在这里插入图片描述

写文件:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值