第十九天 Java的基础学习(十三)

本文介绍了Java中try-with-resources语法以解决资源关闭问题,详细讲解了缓冲流的原理和使用,包括字符流和字节流的缓冲,以及如何提高读写效率。同时,阐述了字节输入输出流、字符输入输出流的用法,以及文件操作的关键步骤。此外,还涵盖了序列化、反序列化的基本概念和XML的相关知识,如DTD和XSD,最后提及了DOM和SAX两种XML解析方式及其特点。
摘要由CSDN通过智能技术生成

一、try-with-source 

try-with-source主要是为了解决因为忘记关闭资源而导致的性能问题和调用关闭方法而导致的代码结构乱的问题。

●语法

try(需要在finally关闭的资源对象定义,可以写多条代码){

}catch(){

}

定义到括号里面的对象会自动关闭资源。

•推荐使用字符流,将a.txt中的文本内容拷贝到b.txt中

二、缓冲流

JavaIO中BufferedXXX相关的流统称缓冲流。其本质就是在输入输出时添加缓冲区,减少磁盘1O的次数,这样可以提高读写效率,同时也可以反复读取。

缓冲流称为上层流(高效流),其底层必须有字节流或字符流。当使用完成后关团缓冲流,字节流或字符流也会随之关闭。

可以使用flush()刷新(清空)缓冲区内容,把内容输出到目的地。

当缓存区满了以后会自动刷新。在代码中当关闭流时,底层自动调用flush()方法

●过程

①创建字符输入流,将指定的文件读取到程序中

②创建字符输入缓冲流,自动创建缓存区,将读取的内容添加到缓存区中

       创建字符输出流,自动创建指定的文件

       创建字符输出缓冲流,自动创建缓存区,将写的内容写到缓存区中

③将内容读取到字符输入缓存区中

        每次读取的一行内容

        将字符输入缓存区中的内容输出到输出缓存区中

④关闭缓冲流,自动关闭输出输出流

⑤关闭了字符输出缓冲流,自动清空字符输出缓冲区中的内容

①BufferedReader和BufferedWriter的优点

•速度快

•简化编程

②readLine()底层的原理

•底层还是一个一个字符的读取,append()放入到StringBuilder(或者char))中,遇到换行符,将StringBuilder(charI)转换成String并返回

③不同的操作系统中换行符是不同的

•Unix系统里,每行结尾只有“<换行>”,即“\n”;

.Windows系统里面,每行结尾是“<回车><换行>”,即“\r\n”;

Mac系统里,每行结尾是“<回车>”,即“\r”。

●输入缓冲流,输出缓冲流,创建输入缓存区,输出缓存区,减少i0次数,加快运行效率

 BufferedInputStream bis = new BufferedInputStream(new FileInputStream("文件路径"));

BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("文件路径"));

BufferedReader br = new BufferedReader(new FileReader("文件路径"));

BufferedNriter bw = new Bufferedriter(new FileWriter("文件路径”));

注:

输出缓存区中数据

①放满,自动刷新到本地磁盘文件中

②手动flush()将缓存区中数据刷新到本地磁盘文件中

③关闭输出缓冲流,自动flush()

三、字节输入输出流

传输过程中,传输数据的最基本单位是字节。

FilelnputStream和FileOutputStream是文件操作常用的两种流。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值