美文网首页Java-资料
Java中的各种IO流大全

Java中的各种IO流大全

作者: ddxuzengbin | 来源:发表于2018-09-15 20:56 被阅读86次
输入 输出
字节 InputStream OutputStream
字符 Reader Writer

IO流是Java用于传输数据的一套API, 从方向上可以分为输入流和输出流;从类型上可以分为字符流和字节流
输入流是指数据从外部流向程序,输出流是指数据从程序流向外部。四个基本流都是抽象类.
读取文件---数据从文件读取到程序中---输入流
向文件中写入一段数据---数据从程序流向文件---输出流

流的异常处理

  1. 将流对象放到try之外定义并且赋值为null,放到try之内初始化
  2. 在关流之前需要判断流对象是否初始化成功---判断流对象是否为null
  3. 关流之后需要将流对象置为null
  4. 需要在写完数据数据之后手动冲刷缓冲区以防关流失败有数据死在缓冲区中

PS:从TXT文件读取数据 --- 字符流、输入流 FileReader

缓冲流

字符输出流在输出的时候有缓冲区存在,输入流没有,字节流也没有
在构建BufferedReader对象的时候需要传入一个Reader对象,底层读取数据靠的是传入的Reader对象,BufferedReader提供了缓冲区。---这种方式称之为装饰设计模式

合并流:SequenceInputStream

用于合并多个字节流的。在构建合并流对象的时候,需要传入Enumeration对象,利用了Vector中的elements()来获取这个Enumeration对象。

转换流

提供了字符流和字节流之间的相互转换。
OutputStreamWriter:将字符流转化为字节流。
InputStreamReader:将字节流转化为字符流

系统流/标准流

系统流都是字节流,本质上是静态对象,一旦关闭就无法使用,所以系统流在使用的时候一般不用关闭
System.in 标准输入流
System.out 标准输出流
System.err 标准错误流

打印流

PrintStream/PrintWriter--- 能够便捷的向外输出数据

序列化/反序列化流

将对象进行存储的过程就称之为序列化 --- 将对象保存到硬盘上就叫持久化
将对象还原回来的过程就称之为反序列化
注意:

  1. 一个对象如果想要被序列化,那么要求这个对象对应的类必须实现一个接口---Serailizable --- 仅仅用于标志实现这个接口的类的对象允许被序列化
  2. 被static/transient修饰的属性不能被序列化
  3. 需要在类中手动指定一个属性---serialVersionUID---版本号。当一个对象序列化出去的时候会携带这个类的版本号,在反序列化的时候会检查对象携带的版本号和类中定义的版本号是否一致,如果一致则允许被反序列化。如果一个类中没有手动指定版本号,那么Java在编译的时候会根据当前类中的属性和方法自动计算产生一个版本号。也就意味着类中的属性或者方法产生变动,版本号就会改变。---因此需要手动指定,一旦手动指定就不再变化了。---版本号默认用private static final long 修饰限定
  4. 在Java中数组和集合中的元素以及大部分的映射不能随着集合或者映射一起序列化

相关文章

  • Java中的各种IO流大全

    IO流是Java用于传输数据的一套API, 从方向上可以分为输入流和输出流;从类型上可以分为字符流和字节流输入流是...

  • 28、说说Java 中 IO 流

    说说Java 中 IO 流 Java 中 IO 流分为几种? 1、按照流的流向分,可以分为输入流和输出...

  • 05-Java中的IO与NIO面试题(15题)

    1、Java 中 IO 流? Java 中 IO 流分为几种?按照流的流向分,可以分为输入流和输出流;按照操作单元...

  • IO和NIO区别

    IO是面向流的,NIO是面向缓冲区的;Java IO的各种流是阻塞的,Java NIO的非阻塞模式;Java NI...

  • Java之IO流详解

    title: Java之IO流详解tags: Java IO流categories: Java IO流 大多数应用...

  • Java中的IO流

    Java中的IO流分类 输入IO流输入字节流(InputStream)处理流缓冲流(BufferedInputSt...

  • IO

    一 IO中各个流的基本用法 参考: java中的IO整理 二 IO体系 参考:看完这个,Java IO从此不在难 ...

  • Java IO 笔记

    学习Java中的IO,首先要理解Java中IO的流模型。所谓流,可以假想成河流,流的数据源,就是河流的发源地,流是...

  • IO编程

    概念 Java流式I/O类都包含在java.io包中。有各种不同的流类来满足不同性质的输入/输出需要。根据流中的数...

  • Java新特性之Java8的那些事儿-Stream

    什么是流? ​ Java Se中对于流的操作有输入输出IO流,而Java8中引入的Stream 属于Java ...

网友评论

    本文标题:Java中的各种IO流大全

    本文链接:https://www.haomeiwen.com/subject/jdvtnftx.html