System.in:
标准输入流:public static final InputStream in
System.out:
标准输出流:public static final printStream out
System.out.println();本质上是一个输出流
打印流:
分类:
字节打印流:printStream 使用父类方法是会转码,使用自己方法的时候些什么是什么
write:写的数据转为对应的字符
print:写什么就是什么
println:换行
字符打印流:PrintWriter(1.PrintWriter(String name) 2.PrintWriter(FileWriter out, boolean autoFlush))
write:1.写完需要换行需要加一行write("\r\n"),需要flush才能把数据写进去
2.写完需要换行需要加一行write("\r\n"),不需要flush,自动刷新
println:1.写完自动换行,也需要flush
2.写完自动换行,不需要flush,自动刷新
特点:
只负责输出数据,不读取,有自己的特有方法
PrintStream:
对象序列化流:
对象序列化流:ObjectOutputStream(OutputStream out)
将对象保存在磁盘中,或是在网络中传输对象.
序列化对象的方法: void writeObject(Object obj)
对象所属的类必须实现Serializable接口才能序列化或反序列化,Serializable接口中没有方法需要重写
对象在序列化之后修改所属类的内容,再进行反序列化会抛出异常:InvalidClassException,避免方法:给定一个序列化id,方法:private static final long serialVersionUID
如果不想序列化某个对象,用transient修饰
对象反序列化流:ObjectInputStream(InputStream in) 可以反序列化ObjectOutputStream(OutputStream out)
反序列化对象的方法:Object readObject(); 从ObjectInputStream读取一个对象
Properties:
不能用泛型,Hashtable实现了Map接口,所以也是以键值对存储数据.
继承所有map方法
特有方法:
1.setProperty(String key, String value) 设置集合的键和值,都是String类型,底层调用Hashtable方法put
2.getProperty(String key) 使用此属性列表中指定的键搜索属性
3.stringPropertyNames() 从该属性列表中返回一个不可修改的键集,其中键及其对应的值是字符串
Properties和IO流结合:
方法:1.void Load(Reader reader) 将文件中的数据读取存入集合
2.void store(Writer writer) 将集合中的数据读取写入文件
|
|