NO.30 基本IO操作

InputStream与OutputStream 类:

流按照功能分为:输入流(input)----用来读取数据;输出流(output)----用来写出数据

流分类为:节点流和处理流

节点流:节点流又称为低级流,是真实负责读写的流,是连接程序与数据源的"管道",负责将数据搬运。读写一定是基于低级流完成的。

    特点:数据源明确(知道数据从哪里来,或者数据写到哪里去)

处理流:处理流不能独立存在,必须基于另一个流进行读或写,目的是通过处理流提供的读写功能简化我们对实际读写数据的操作。


文件流:用来读写文件数据的流,文件流是一对低级流论功能与RandomAccessFile一致,都是用来读写文件数据的流,但是区别在于实际底层的读写实现方式不同,RAF是基于指针进行读写的。文件流是基于流式读写的。

输出流写出


输入流读取

输入输出流复制文件:

流复制操作

缓冲流: BufferedInputStream----缓冲输入流,提高读取效率 BufferedOutputStream----缓冲输出流,提高写出效率

相比于其他单字节写入写出复制操作速度快了许多

缓冲输出流写出数据的缓冲区问题:

手动写出

对象流:对象流是一对高级流,作用是方便读写java中的对象。

为方便测试,创建一个Person类:

还有各字段的get、set方法以及toString、equals方法没有写出,可通过eclipse自动生成

java.io.ObjectOutputStream

对象输出流,可以将给定的对象转换为一组字节,然后通过其处理的流将这组字节写出

将一个对象通过对象列转换为字节后并写入文件的操作涉及两个专业名词:

1)对象序列化----对象序列化就是将一个java中的对象按照其结构转化为一组字节的过程(对象输出流完成)

2)持久化----将一组字节写入文件(硬盘上)的过程成为持久化

写入文件

java.io.ObjectInputStream

对象输入流,用于反序列化对象

读出文件
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转自 http://www.ibm.com/developerworks/cn/education/java/j-...
    抓兔子的猫阅读 6,972评论 0 22
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 33,513评论 18 399
  • Given a binary tree, flatten it to a linked list in-place...
    Jeanz阅读 1,765评论 0 0
  • 小时候,经历漫长的冬天,我总是盼着春天早早来,好久才能等到粉红桃花、雪白梨花开。西安的春天却是赶着来了,...
    3b43e72b4809阅读 1,670评论 0 0
  • 一滴墨汁落在一杯清水里,这杯水立即变色,不能喝了;一滴墨汁融在大海里,大海依然是蔚蓝色的大海。为什么?因为两者的肚...
    健国阅读 1,148评论 0 0

友情链接更多精彩内容