二十 输入输出 I/0(二)

二十章 – 输入输出 I/0(二)

一、掌握基本的字符流的使用

字符流的基类:
Reader
Writer

1.字符输入流

1.1常用实现类:
FileReader

1.2构造:
FileReader(File file);
FileReader(String pathname);

1.3常用方法:

int read(char[] buffer); 读取数据到字符数组中 返回读取的字符数

int read(char[] buffer,int offset,int len); 读取指定长度的字符数据到数组中 返回读取的字符数

2.字符输出流

2.1常用实现类:
Filewriter

2.2构造:
FileWriter(File file);
FileWriter(String pathname);
FileWriter(String/File pathname,boolean append); 追加数据

2.3常用方法:
void writer(String str);输出一个字符串
void writer(String str,int offset,int len);输出一个字符串的一部分;
void writer(char[] buffer);输出一个字符数组
void writer(char[] buffer, int offset,int len);输出一个字符数组的一部分

关流方法:
void close();
在try - catch 中可以通过try()形式自动关流

二、掌握高效字符流的使用
1 高效字符输入流

bufferedReader
1.1构造:
BufferedReader(Reader re)

1.2常用方法:
String readLine();读取一行代码
其他与普通字符输入流一样,但是比他们更加高效

2 高效字符输出流

BufferedWriter

2.1构造:
BufferedWriter(Writer wr);

常用方法:

方法基本和普通字符输出流一样,但是比之更加高效。(都是重新重写自Writer类的相关方法)

三、掌握序列化和反序列化的实现(对象流)

读写对象数据

序列化: 将对象按照指定的规则存储到文件中
反序列化: 将文件中的数据按照指定的规则转换为对象

序列化

ObjectOutputStream

public static void main (String[] args){
	try(
	// 构造ObjectOutputStream(OutputStream out)
	ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("d:/hotel.txt"))
	){
		// 创建对象 存储酒店信息
		Hotel hotel = new Hotel(1L,"假日酒店","北京西城区北礼士路",new Date());
		oos.writeObject(hotel);
	}catch(Exception e){
		e .printStackTrace();
	}
}
反序列化

ObjectInputStream

public class Demo2 {

	public static void main(String[] args) {
		try (
			// 构造:ObjectInputStream(InputStream is)
			ObjectInputStream ois = new ObjectInputStream(new FileInputStream("d:/hotel.txt"));
			){
			// 反序列化
			Object obj = ois.readObject();
			Hotel hotel = (Hotel)obj;
			System.out.println(hotel);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值