javaSe基础学习总结19

FileReader读取字符文件数据的时候

默认采用当前java文件对应的字符集进行解码

FileWriter写出字符文件数据的时候

默认采用当前java文件对应的字符集进行编码

怎么解决读取其他字符集的数据--》通过转化流

处理流-装饰对象

InputStreamReader

OutputStreamWriter

 

1)reader

abstract  void close()

      关闭该流并释放与之关联的所有资源。

int read()

      读取单个字符。

intread(char[] cbuf)

      将字符读入数组。

2)writer

abstract  void close()

      关闭此流,但要先刷新它。

abstract  void flush()

      刷新该流的缓冲。

voidwrite(char[] cbuf)

      写入字符数组。

write(intc)

voidwrite(String str)

 

转换流(字节流———》字符流)

主要作用:把字节【整数】流转换为字符【字符】流(不能字符转字节流!-设置编码解码字符集)

1、OutputStreamWriter

    a)可以设置编码字符集

    b)进行字节输出流转字符输出流

2、InputStreamReader:字节输入流---转--》字符输入流

    a)可以设置解码字符集

    b)进行字节输入流转字符输入流

注意点

 1)转换流都带有缓冲区-不能设置大小,输出数据一定要刷新

 2)关闭处理流时-会自动关闭所包装的流

 

节点流(真实对象):连接到数据源提供基本输入输出功能

处理流(装饰对象):包装其他流-增加附加功能,提高性能。

缓冲流-》处理流

作用:对其他流-增加输入输出缓冲区-提高输入输出性能(针对大量数据处理-速度块)。

缓存字节流

bufferedInputstream

bufferedOutputstream

缓存字符流

bufferedReader

bufferedWriter

处理流给其他流增加功能的步骤

new处理流(其他流);

处理流.read

处理流.write

 

增加的功能

1)增加输入输出缓冲区-》提高性能

2)新增api;要使用自己的api,不能面向超类型Reader和Writer编程

bufferedReader

增加:eadLine功能:读取一行数据

bufferedWriter

增加: newLine功能:写出一个换行符

 

计算机的文件数据

字节文件:通过文本编辑器打开看不懂文字的文件。--》图片,视频,声音 png,gif,mp3,avi

字符文件:可以通过文本编辑器打开,可以看懂文字的文件。-》文本文件-》.java,.txt

字节流:a)处理字节数据 b)处理字符数据-》需要手动编码和解码

字符流:b)处理字符数据-》自动编码和解码

 

作用:把程序数据    传输到    数据源长久存储。

1、序列化概念

a)序列化(输出):把程序中的数据  (基本类型,引用类型)以【字节数据】写出      到一个数据源

b)反序列化(输入):把数据源序列化的数据  【字节数据】    读取到       程序中的数据(基本类型,引用类型)

序列化的流-->处理流

a)【基本类型】加【字符串】序列化

DataInputStream    可以读入基本类型加字符串的字节输入流

DataOutputStream    可以写出基本类型加字符串的字节输出流

增加了api:使用该api-不能面向超类型InputStream和OutputStream编程

write基本类型名     基本类型

writeUtf字符串

read基本类型名   基本类型

readUtf字符串

b)【基本类型】加【对象类型】序列化 

ObjectInputStream     可以读入基本类型加字符串还有对象的字节输入流 

ObjectoutputStream    可以写出基本类型加字符串还有对象的字节输出流

 增加了api:使用该api-不能面向超类型InputStream和OutputStream编程

  write基本类型名  基本类型

  writeUtf 字符串

  writeObject 对象类型

  read基本类型名    基本类型

  readUtf 字符串

  readObject 对象类型

序列化注意点

1)写出数据和读取数据的顺序必须一致

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值