IO流下

一、Properties类


1.特点


1)HashTable子类,map中的方法均可以使用

2)没有泛型,键值都是字符串类型的

3)可以持久化的属性集

4)可以和流结合使用


2.方法


.setProperty(String Key,String Value)相当于Map的put()方法

.stringPropertyNames(String s)相当于Map的keySet()方法


3.Load方法:传递字节或字符输入流,读取键值对,保存到集合中


Load(InputStream in)

Load(Reader r)


                //初始化Properties
		Properties pro=new Properties();
		//定义字符输入流
		FileInputStream fis=new FileInputStream("E:\\a\\config.properties");
		//从输入流中读取属性列表
		pro.load(fis);
		//打印显示
		System.out.println(pro);

4.Store方法:接收字节或字符输出流,将键值对写入文件中


Store(OutputStream out)

Store(Writer w)


                //定义字节输入流
		FileOutputStream fos=new FileOutputStream("E:\\a\\config.properties");
		//将键值为score的值改变为100
		pro.setProperty("score", "100");
		//将键值对写入输出流中
		pro.store(fos, null);

二、序列化和反序列化


特点:主要用于类的实例化对象的存储,其他都和字节字符输入输出流一致。


序列化(ObjectOutputStream ):将Java对象的基本数据类型和图形写入 OutputStream。可以使用InputStream读取对象,通过在流中使用文件实现对象的存储。


        //序列化:内存-->硬盘
	public static void put() throws IOException{
		FileOutputStream fos=new FileOutputStream("E:\\a\\ab.txt");
		ObjectOutputStream oos=new ObjectOutputStream(fos);
		//把类文件写到硬盘中
		oos.writeObject(new Person("张琳",10));
		oos.close();
	}

反序列化ObjectInputStream):对以前使用InputStream 写入的基本数据和对象进行反序列化。支持Serializable接口的对象才能从流读取。


        //反序列化:硬盘-->内存
	public static void in()throws IOException, ClassNotFoundException{
		FileInputStream fis=new FileInputStream("E:\\a\\ab.txt");
		ObjectInputStream ois=new ObjectInputStream(fis);
		//独处硬盘中的内容,用Person接受
		Person obj = (Person)ois.readObject();	
		System.out.println(obj.toString());
	}

三、打印流


字节打印流(PrintStream

字符打印流(PrintWriter


                //定义字符输出流
		PrintWriter pw = new PrintWriter("E:\\a\\output.txt");
		//2,写数据	
		pw.println("helloWorld");
		//3,关闭流
		pw.close();

特点:不负责数据源,只负责目的地,可以自动刷新


小结:

IO流这部分学习的东西整体是比较多的,但是重要的是要分清类,找出他们的应用场景具体是什么。根据输入输出、字节字符来分框架,期间加入缓冲流的使用、字节字符之间的互相转换、与集合的融合使用、类实例化后对象的写入以及简便的直接打印输出。总是思路需理清,代码得多敲。


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值