一、笔记
内存流: 把数据保存到内存里
ByteArrayOutputStream 父类是 OutputStream 输出流==>把数据保存到内存里
构造方法:public ByteArrayOutputStream() 因为所有的输入流对象都会传递一个文件的参数而这个对象的构造没有这个参数,所有需要借助其它的流对象.
常规获取数据的方法是:
toByteArray() toString()
close() 关闭 ByteArrayOutputStream 无效。 因为其实内存流
打印流 : 字节打印流与字符打印流
构造方法有:
1. public PrintStream(File file)
2.public PrintStream(File file,String csn) 第一个参数是文件对象 第二个参数是设置字符编码集
3. public PrintStream(OutputStream out,boolean autoFlush) 第一参数是一个输出流对象, 第二个参数是 是否自动刷新缓冲区
常规的三个方法:
public void print(long l)
public void println(long l)
public void write(int b)
随机流: 随机流 此类的实例支持对随机访问文件的读取和写入 父类是 Object 不属于io流之内
构造方法: public RandomAccessFile(String name,String mode) 第一个参数传递的是路径 , 第二个参数传递的是模式值
含意
"r" 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException。
"rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。
"rws" 打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。
"rwd" 打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到底层存储设备。
常规的方法:
seek(long pos) 设置指针的偏移量
getFilePointer() 获取指针的偏移量
read() 读
write(int b) 写
(重点:) Properties
Properties 父类是 Hashtable 类表示了一个持久的属性集 可以当成是一个map使用
构造方法: public Properties()
常规的方法:
1.加载流的资源的方法 public void load(InputStream inStream)
2.获取值的方法 public String getProperty(String key)
3. public Object setProperty(String key,String value) put() 设置值
4. public void store(OutputStream out,String comments) 把修改的数据结合流对象放入到文件里
5. public Set<String> stringPropertyNames() 获取到所有的键的方法
遍历的两种方式:
1.获取到所有的键 stringPropertyNames() 返回的是一个set集合
2.继承了hashtable 使用第二种遍历方法 : entrySet() 返回值是一个 Map.Entry
开发中用的最多的就是读取配置文件
1.需要实例化这个对象
Properties
2.使用方法加载流对 load(InputStream)
3.就可以同键值对来获取数据 getProperty(String key)
标准输入 输出流
标准的输入流: System.in
标准的输出流: System.out PrintStream 标准的输出流对象
流的异常的处理:
1.io 流异常处理:
1.一定要进行捕获,不要抛给jvm (不包括方法)
2. 在 finally 关闭资源一定要进行非null判断