java(Day22)----字节流,字符流

1.内存流

注意:节点流

ByteArrayInputStream:内存输入流

  作用:即将运行内存中的数据读取到程序中

ByteArrayOutputStream:内存输出流

  作用:将程序中数据存储到运行内存中

  注意:内村输出流默认初始大小32字节,存储空间不够时,将会扩大.

  特有方法:

toByteArray():通过内存输出流获取其存储数据的数组

2.缓冲流

作用:提供读写效率

注意:过滤流

BufferInputStream

  作用:提高读的效率

BufferOutputStream

  作用:提高写的效率

注意:

  1. 包装流在关闭时,会关闭他所包装的节点流
  2. 默认缓冲区为8kb

3.对象流

作用:读写对象

注意:过滤流

ObjectInputStream

特有方法:

  ReadObject:读取对象

  注意:要包装文件中有对象

ObjectOutputStream

特有方法:

  WriteObject():写出对象

注意:

  读写的对象所属的类必输实现序列化接口,包括对象的属性的数据类型也需要实现序列化

4.序列化:

  让对象所属的实现Serializable接口

  注意:

  1. 八个基本数据类型包装类与String都已经实现Serializale接口
  2. 不能序列化的属性有:
  1. 使用trisent修饰的属性为瞬时属性,不参与序列化
  2. 使用static修饰的属性,不参与序列化

5.字符流

5.1特点

传递最小单位是char(字符)

不能传递音视频图片等内容,只能传递文本

5.2体系结构

Reader

  提供的方法:

Int read():一次读取一个字符,返回值就是读取到的字符,返回值-1表示读取结束

Int read(char cbuf[]):一次读取一组字符到数组cbuf中,返回值为读取到的字符长度,-1时表示结束

Int read(char cbuf[],int off,int len):一次读取一组字符到数组cbuf中,从off位置开始存储,存储len个,返回值为读取到的字符长度,-1表示结束

Void close():关流

Writer

  提供的方法

Void write(int c):一次写入一个字符

Int read(char cbuf[]):一次写入一组字符

Int read(char cbuf[],int off,int len):将cbuf中off位置开始,len个字符写入

Void write(String str):将一个字符串写入

Int read(String str,int off,int len):将一个字符串从off位置开始,len个长度的字符写入

Void close():关流

Void flush:冲刷

6.文件流

  FileReader

  作用:将文本文件的内容读取到程序中

  fileWriter

  作用:将程序中的数据写入到文本文件中

  优点:相对与字节流读取文本文件,字符流不会出现乱码,因为一次就将一个字符读取结束了,不会像字节流可能会读取一个字符的一半字节

  缺点:相对与字节流而言,字符流只能操作文本文件

7.缓冲流

  buffereReader

作用:提高字符流读取的效率

默认缓冲区大小:8192字符

特有方法:

Readline():一次读一行

  BffereWriter

作用:提高字符串写出的效率

默认缓冲区大小:8192字符

特有方法:

Newline():给内容中写入一个换行

8.转换流

InputStreamReader

  作用:将字节输入流转换为字符输入流

  注意:当读取到的文本文件与代码的编码格式不同时,转换流可以设定写入的编码格式,防止中文乱码参数为文本文件的编码格式,ANSI==GBX,Eclipse不支持ANSI

OutputStreamWriter

  作用:将字符输出流转换为字节输出流

  注意:当写入到的文本文件与代码的编码格式不同时,转换流可以设定写入的编码格式,防止中文乱码

9.标准输出流

Printwriter

特有方法:

Print();

Println();

10.编码格式

ASCII:只有一些国家的文字

Unicode:万国码,在ASCAII上增加多国字符,一个字符2个字节

GBK:加了一些中文,在UNICODE基础上增加中文

UTF-8:加了一些中文,在unicode基础上增加中文

UTF-8对中文的支持比GBK好

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值