第一章 缓冲流

缓冲流,也叫高效流,按照数据类型分类:

  • 字节缓冲流:BufferedInputStream,BufferedOutputStream
  • 字符缓冲流:BufferedReader,BufferedWriter

缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。

字节缓冲流

构造方法

  • public BufferedInputStream(InputStream in) :创建一个 新的缓冲输入流。
  • public BufferedOutputStream(OutputStream out): 创建一个新的缓冲输出流。

字符缓冲流

构造方法

  • public BufferedReader(Reader in) :创建一个 新的缓冲输入流。
  • public BufferedWriter(Writer out): 创建一个新的缓冲输出流。

特有方法

  • BufferedReader:public String readLine(): 读一行文字。
  • BufferedWriter:public void newLine(): 写一行行分隔符,由系统属性定义符号。

第二章 转换流

InputStreamReader类

转换流java.io.InputStreamReader,是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定的字符集将其解码为字符。

构造方法

  • InputStreamReader(InputStream in): 创建一个使用默认字符集的字符流。
  • InputStreamReader(InputStream in, String charsetName): 创建一个指定字符集的字符流

OutputStreamWriter类

转换流java.io.OutputStreamWriter ,是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符编码为字节。

构造方法

  • OutputStreamWriter(OutputStream in): 创建一个使用默认字符集的字符流。
  • OutputStreamWriter(OutputStream in, String charsetName): 创建一个指定字符集的字符流。

第三章 序列化

Java 提供了一种对象序列化的机制。用一个字节序列可以表示一个对象,该字节序列包含该对象的数据、对象的类型和对象中存储的数据等信息。字节序列写出到文件之后,相当于文件中持久保存了一个对象的信息。

反之,该字节序列还可以从文件中读取回来,重构对象,对它进行反序列化。对象的数据、对象的类型和对象中存储的数据信息,都可以用来在内存中创建对象。

ObjectOutputStream类

java.io.ObjectOutputStream 类,将Java对象的原始数据类型写出到文件,实现对象的持久存储。

构造方法

public ObjectOutputStream(OutputStream out): 创建一个指定OutputStream的ObjectOutputStream。

序列化操作

  1. 一个对象要想序列化,必须满足两个条件:
  • 该类必须实现java.io.Serializable 接口,Serializable 是一个标记接口,不实现此接口的类将不会使任何状态序列化或反序列化,会抛出NotSerializableException 。
  • 该类的所有属性必须是可序列化的。如果有一个属性不需要可序列化的,则该属性必须注明是瞬态的,使用transient 关键字修饰。

ObjectInputStream类

ObjectInputStream反序列化流,将之前使用ObjectOutputStream序列化的原始数据恢复为对象。

构造方法

public ObjectInputStream(InputStream in): 创建一个指定InputStream的ObjectInputStream。

反序列化操作

public final Object readObject () : 读取一个对象。

第四章 打印流

PrintStream类

构造方法

public PrintStream(String fileName): 使用指定的文件名创建一个新的打印流。

PrintStream ps = new PrintStream("ps.txt");

缓冲流、转换流、序列化流、打印流相关推荐

  1. JavaSE(字符流、IO资源的处理、属性集、ResourceBundle工具类、缓冲流、转换流、序列化、打印流、装饰设计模式、commons-io工具包)

    JavaSE 字符流 字符输入流[Reader] 字符输入流Reader类的概述 字符输入流Reader类的常用方法 FileReader类 FileReader类的概述 FileReader类的构造 ...

  2. Java基础19:IO流—缓冲流、转换流、序列化、打印流、压缩流和解压流

    IO流中的一些其他流:缓冲流.转换流.序列化.打印流.压缩流和解压流 1. 缓冲流 IO流除了一些基本的流,还有在此基础上发展出来的一些更强大的流.比如能够高效读写的缓冲流,能够转换编码的转换流,能够 ...

  3. Java基础-9(缓冲流,转换流,序列化,打印流,TCP通信程序)

    51.缓冲流 概述 缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类: 字节缓冲流:BufferedInputStream,BufferedOutputSt ...

  4. Java笔记整理六(File类,递归,字节流IO,字符流IO,流中的异常处理,属性集Properties,缓冲流,转换流,序列化,打印流)

    1.File类 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 文件和目录路径名的抽象表示 java把文件和文件夹封装位为一个File类,我们可 ...

  5. 【02】Java进阶:13-IO资源的处理、属性集、缓冲流、转换流、序列化、打印流、装饰设计模式、commons-io工具包

    day13[Properties类.缓冲流.转换流.序列化流.装饰者模式.commons-io工具包] 今日内容 IO异常处理 Properties类 缓冲流 转换流 序列化\反序列化流 打印流 装饰 ...

  6. 【java笔记】字符流,Properties,序列化,打印流

    字符流 字符流=字节流+编码 package demo04;import java.io.FileInputStream; import java.io.FileNotFoundException; ...

  7. stream流去除对象的值_I/O流(过滤流、对象序列化、字符流)

    过滤流基础 Data Stream 首先我们来介绍一对过滤流:DataInputStream 和 DataOutputStream.这两个类有什么作用呢?首先来思考下面的需求:假设,要把一个 doub ...

  8. 缓冲流、转换流、序列化流和打印流

    Java 一.缓冲流 1.1 概念 1.2 原理 1.3 字节缓冲流 1.3.1 构造方法 1.3.2 使用高效字节流进行文件复制 1.4 字符缓冲流 1.4.1 构造方法 1.4.2 字符缓冲流特有 ...

  9. 【Java基础】Java IO编程:输入输出流、内存流、打印流、缓冲流BufferedReader、扫描流Scanner、序列化与反序列化

    文章目录 第11章.Java IO编程 11.1 文件操作类:File 11.2 字节流与字符流 字节输出流:OutputStream OutputStream类 FileOutputStream类 ...

  10. 第十五章 IO流(转换流 字符流 字符缓冲流 打印流)

    Java基础15 第十五章 IO流(转换流 字符流 字符缓冲流 打印流) 15.1 字符编码和字符集 15.1.1 字符编码 15.1.2 字符集 15.1.3 String类getBytes()方法 ...

最新文章

  1. python变量类型-python变量的数据类型有哪些?
  2. java 鉴权_我爱java系列之---【JWT实现微服务鉴权(一)】
  3. oracle高资源消耗sql,oracle 中如何定位重要(消耗资源多)的SQL
  4. centos 7 mysql随机密码_在centos中安装了mysql5.7之后解决不知道随机的密码的问题...
  5. Spring配置项context:annotation-config/解释说明
  6. (Portal 开发读书笔记)PortletFileUpload
  7. Linux上对图片进行压缩
  8. 用GSON 获取JSON数组属性
  9. mesh gradient的求法
  10. oracle中插入一个blob数据
  11. optistruct学习
  12. Python3从零开始搭建一个语音对话机器人
  13. 基于CC2430的基础实验4-----定时器中断
  14. 钢铁行业超低排放的前生今世
  15. 中国曲谱网爬虫研究(Python)
  16. Notes from Google Play | Google Play 持续助力您的应用和游戏
  17. xmanager登陆linux黑屏,用xmanager软件登陆linux的方法
  18. 百分制转五分制(java)
  19. C 常數0L,0LL,0UL,0.0f,0.0L
  20. springboot 集成 RabbitMQ confirm 确认模式和 return 回退模式以及Consumer Ack模式

热门文章

  1. ABAP几种内表的操作
  2. 29、Power Query-分支语句的进阶
  3. windows不能改密码
  4. 巴奴与海底捞的战争背后,“单品即品牌”战略到底香不香?
  5. 普宁二中高考2021成绩查询,普宁二中2019高考喜报成绩、本科重本上线人数情况...
  6. android服务绑定音乐播放器,Android开发【04-21求助贴】使用后台服务的音乐播放器...
  7. 单页面axios_Axios封装之取消重复请求和接口缓存
  8. java线程概念_《Java基础知识》Java线程的概念
  9. 卡顿严重_王者峡谷:S20出现bug?卡顿十分严重
  10. 【python教程】IO文件操作的常见用法