梳理一下Java I/O操作相关的基础点:
文件操作:在Java中通过流来操作,可以通过字节或者字符
1)创建输入输出流;
2)创建缓冲区域;按照字节byte或者字符char数组;
3)读取和写入;
4)关闭输出和输入流;
流的类别:
1)文件流 FileInputStream、FileOutputStream、FileReader、FileWriter
2)转化流 将字节流转化为字符流 InputStreamReader、OutputStreamWriter
3)缓冲流,属于包装流,BufferedInputStream用来包装InputStream
4)打印流:字节打印流 PrintStream、字符打印流PrintWriter
5)对象流:序列化和反序列化,即将对象转化为二进制存储在硬盘中;必须实现java.io.Serializable接口.
ObjectOutputStream: 把对象转换为二进制. 包装FileOutputStream
ObejctInputStream: 把二进制数据读进程序,恢复成对象.包装FileInputStream
什么场景下需要序列化???
- 当你想把的内存中的对象状态保存到一个文件中或者数据库中时候。
- 当你想用套接字在网络上传送对象的时候。
- 当你想通过RMI传输对象的时候。
另外,在编写代码的时候应该避免“硬编码”,可以借助于加载配置文件方式,在Java中:配置文件(XML/properties).
其中Java中Properties类是map接口的实现类,只不过其key和value都属于String类型;通过load()方法加载properties文件的输入流;