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/ande1922/article/details/80514716
今日推荐