Java基础—IO小结(二)缓冲流与其它流的使用
2017-09-09 11:23
363 查看
一、缓冲流的使用
每个字节流都有对应的缓冲流:@Test public void test2() { ObjectInputStream ois = null; try { FileInputStream fis = new FileInputStream(new File("person.txt")); ois = new ObjectInputStream(fis); // 反序列化到内存中了 Person p1 = (Person) ois.readObject(); System.out.println("p1 = " + p1); Person p2 = (Person) ois.readObject(); System.out.println("p2 = " + p2); } catch (Exception e) { e.printStackTrace(); } finally { if (ois != null) { try { ois.close(); } catch (IOException e) { e.printStackTrace(); } } } }
View Code
[b]结果:
当然,除了上述的文件流,我们还可以进行byte[]数组流的序列化与反序列化,相关的工具类,推荐如下:
package cn.itcast_03_netty.sendobject.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class ByteObjConverter { /** * 使用IO的inputstream流将byte[]转换为object * @param bytes * @return */ public static Object byteToObject(byte[] bytes) { Object obj = null; ByteArrayInputStream bi = new ByteArrayInputStream(bytes); ObjectInputStream oi = null; try { oi = new ObjectInputStream(bi); obj = oi.readObject(); } catch (Exception e) { e.printStackTrace(); } finally { try { bi.close(); } catch (IOException e) { e.printStackTrace(); } try { oi.close(); } catch (IOException e) { e.printStackTrace(); } } return obj; } /** * 使用IO的outputstream流将object转换为byte[] * @param bytes * @return */ public static byte[] objectToByte(Object obj) { byte[] bytes = null; ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo = null; try { oo = new ObjectOutputStream(bo); oo.writeObject(obj); bytes = bo.toByteArray(); } catch (Exception e) { e.printStackTrace(); } finally { try { bo.close(); } catch (IOException e) { e.printStackTrace(); } try { oo.close(); } catch (IOException e) { e.printStackTrace(); } } return bytes; } }
4.随机存取流
可以解决之前不能追加文件内容,只能覆盖的情况
相关文章推荐
- Java.io.StreamTokenizer的使用小结
- java基础小结(附String的使用方法)
- 求解java IO中的缓冲流的使用?
- 【深入Java基础】Java IO 使用
- JAVA基础--IO输入输出(File使用)17
- Java基础-IO-其它流(笔记)
- Java基础温习 (8)Java内部类的使用小结
- java基础教程之IO使用一
- JAVA基础:使用缓冲IO提高Java程序性能
- java数字图像处理基础使用imageio写图像文件示例(转载)
- java基础教程之IO使用二
- Java基础温习 (4)Java关键字static、final使用小结
- 黑马程序员----Java基础之IO包中其它类
- JAVA基础初探(十三)IO简介、字节流与字符流区别、带缓冲的字节/字符流读取数据、FileReader/FileWriter便捷类、Apache IO库使用说明
- 【JAVA基础】 IO操作小结——节点流和处理流
- java数字图像处理基础使用imageio写图像文件示例
- [学习笔记]Java基础_IO(包含对象流序列化使用和RandomAccessFile 类的使用)
- 使用Java基础定时执行程序
- 在JAVA中使用文档对象模型DOM经验小结
- 使用技巧:Java程序用缓冲IO来提高性能