- 对象处理流
- 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);