java中的IO操作(二)【个人笔记】

能与流结合的集合——Properties

Map
|--Hashtable
|--Properties
Properties集合
特点:
1.该集合中的键和值都是字符串类型
2.集合中的数据可以保存到流中,或者从流中获取数据
  
通常该集合用于操作以键值对形式存在的配置文件

常用方法

setProperty(String key, String value);

load();

store(); //持久化


PrintStream:字节打印流

1,提供了打印方法可以对多种数据类型值进行打印。并保持数据的表示形式

2,不抛IOException异常

构造函数,接收三种类型的值
1,字符串路径

2,File对象

3,字节输出流


演示:

	PrintStream out = new PrintStream("print.txt");
	out.write(97);//文件中写入a
	out.print(97);//文件中写入97
	out.close();

PrintWriter:字符打印流

构造函数参数

1,字符串路径

2,File对象

3,字节输

4,字符输出流


演示:

	BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
	PrintWriter out = new PrintWriter(System.out);
		
	String line = null;
	while ((line = bufr.readLine()) != null) {
		if ("over".equals(line)) break;
		out.println(line);
		out.flush();		
	}
	out.close();
	bufr.close();


流的序列化《合并》——SubsequenceInputStream

将几个输入流合并成一个流

	ArrayList<FileInputStream> al = new ArrayList<FileInputStream>();
		
	al.add(new FileInputStream("info.txt"));
	al.add(new FileInputStream("print.txt"));
	al.add(new FileInputStream("test_myself.txt"));

	Enumeration<FileInputStream> en = Collections.enumeration(al); //枚举
	SequenceInputStream sis = new SequenceInputStream(en); //合并

对象的序列化(ObjectOutputStream)与反序列化(ObjectInputStream)

序列化:

	ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("obj.object"));	
	oos.writeObject(new Person("小强", 30));
反序列化

	ObjectInputStream ois = new ObjectInputStream(new FileInputStream("obj.object"));
	Person p = (Person)ois.readObject();

随机访问文件——RandomAccessFile

它不是IO体系中的子类

特点:

1.该对象既能读,又能写

2.该对象内部维护了一个byte数组,并通过指针可以操作数组中的元素
3.文件指针可以通过getFilePointer方法读取位置,通过seek方法设置位置

4.其实该对象就是将字节输入流和输出流进行了封装

5.该对象的源或者目的只能是文件。通过构造函数可以看出

常用方法:

getFilePointer();

seek();


管道流

PipedInputStream

PipedOutputStream

使用管道流要用上多线程

常用方法:connect


操作基本数据类型的流

DataInputStream

DataOutputStream


操作字节数组的流

ByteArrayInputStream

ByteArrayOutputStream













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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值