java基础-12-io流(下)

  • 对象处理流
    • ObjectOutputStream
    • ObjectInputStream
  • 标准输入、输出流
  • 转换流
    • InputStreamReader
    • OutputStreamWriter
    • 打印流
    • Properties

对象处理流

对象处理流就是在文件中保存对象的内容和数据类型,这就要求对象实现了序列化,
即实现了serializable接口(序列化)或Enternalizable(一般不用)

序列化:就是在保存数据时,保存数据的值和数据类型
反序列化:就是在恢复数据时,恢复数据的值和数据类型

ObjectOutputStream

writeObject()写入对象
writeInt()写入Interger
writeUTF()写入String

其他的和前面的都类似

ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream("E:\\nenene\\a.txt", true));  

objectOutputStream.writeInt(3);//3自动封箱成Interger,Interger实现了Serializable接口 

objectOutputStream.writeObject(new Dog("小黑",1));//写入对象  
  
objectOutputStream.close();

ObjectInputStream

读的时候也要用readInt(),readObject()等

ObjectInputStream objectInputStream = new ObjectInputStream(new FileInputStream("E:\\nenene\\a.txt"));  
  
System.out.println(objectInputStream.readInt());  
  
Object object=objectInputStream.readObject();  
Dog dog=(Dog)object;  
  
System.out.println(dog);

标准输入、输出流

System.in标准输入流 类型:InputStream 默认设备:键盘
System.Out标准输出流 类型:PrintStream 默认设备:屏幕

转换流

InputStreamReader

是Reader的子类,可以将字节流转换为字符流,即将InputStream转换成Reader(),并且可以指定编码格式,防止乱码

InputStreamReader inputStreamReader = new InputStreamReader(new FileInputStream("E:\\nenene\\a.txt"), "UTF-8");  
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);  
  
String s = bufferedReader.readLine();  
System.out.println(s);  
bufferedReader.close();

OutputStreamWriter

是Writer的子类,可以将OutputStream转换成Writer(),并且可以指定编码格式

OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream("E:\\nenene\\a.txt", true), "utf-8");  
  
outputStreamWriter.write("按市场的风格");  
outputStreamWriter.w;  
outputStreamWriter.close();

打印流

用到再写

Properties

是Map的实现子类,用于加载配置文件

文件内的数据格式应为XXX=XX

  • load(Reader reader),加载配置文件的信息到Properties对象
  • list,显示对象的内容
  • getPropertie(key),通过key返回value
  • setPropertie(key,value),把键值对存储到Properties对象中
  • store(Writer writer,String comment), 把Properties对象的内容保存到配置文件中,注释comment没有需要写null
Properties properties = new Properties();  
properties.load(new FileReader("D:\\code\\java\\java-2\\src\\IO\\mysql\\mysql.properties"));  
  
properties.list(System.out);  
  
System.out.println(properties.getProperty("ip"));
Properties properties = new Properties();  
properties.setProperty("user","tom");  
properties.setProperty("pwd","13222312");  
properties.setProperty("ip","180.115.1313");  
  
properties.store(new FileWriter("D:\\code\\java\\java-2\\src\\IO\\mysql\\mysql2.properties"),null);
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值