Java学习之 流 2

IO流的异常处理

    在JDK1.7之后,出现了一种新的关闭流的方式。如果类实现了AutoCloseable接口,那么就可以使用这种方式让流自动关闭。

    try(  
        // 要自动关闭的流,只要实现了AutoCloseable接口,就不必在finally中进行流的关闭,系统会自动关闭流  
        // 其他的异常处理依旧  
        ){  
    }  

字符缓冲流

    BufferedWriter(Writer w)    字符缓冲输出流

    使用构造方法时,传入字符输出流。缓冲流的作用是让流更高效,传入哪个流,就对哪个流高效。

    BufferedWriter的特有方法:

    newLine() 换行符

    该方法具有平台无关性。

    

    BufferedReader(Reader r)    字符缓冲输入流

    BufferedReader的特有方法:

    readLine();

    一行一行的读取,返回字符串,不包含换行符,读取完毕后,会返回null。

    Properties(双列集合)    继承自Hashtable

    该集合是唯一能和IO流产生关系的集合。

    Properties特有的添加方法:

    // 只能添加字符串  
    setProperty(String s1 , String s2)  
    // 读取文件 最终会把数据加载到集合中  
    // 文件格式 key=value  
    // 文件名字规范:一般把Properties集合可以直接加载的文件的后缀名都使用properties来标识  
    // 把数据加载到集合当中  
    load(InputStream);  
    
// 参数1是一个输出流  
// 参数2是添加注释,一般不写,中文注释是乱码  
store(OutputStream, null); 

序列化和反序列化流

ObjectOutputStream

    序列化流的创建

    ObjectOutputStream oos = new ObjectOutputStream(FileOutputStream);  
如果想对这个类进行序列化,必须实现序列化接口Serializable

ObjectInputStream

    反序列化流的创建

    ObjectInputStream ois = new ObjectInputStream(FileInputStream);  
反序列化在读取对象时,需要依赖相应的class文件来读取,没有相应的class文件,会出现ClassNotFoundException。    一般在序列化一个类的时候,会给该类生成一个序列化ID。

猜你喜欢

转载自blog.csdn.net/yanxinrui1995/article/details/80781753