A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 忆梦追风 中级黑马   /  2014-9-5 18:56  /  970 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一.IO流
1.概念
  IO流用来处理设备之间的数据传输
  Java对数据的操作是通过流的方式
  Java用于操作流的类都在IO包中
  流按流向分为两种:输入流,输出流。
  流按操作类型分为两种:字节流与字符流。  字节流可以操作任何数据,字符流只能操作纯字符数据,比较方便。
2.IO流常用父类
  字节流的抽象父类:
  InputStream ,OutputStream
  字符流的抽象父类:
  Reader , Writer  
3.IO程序书写
  使用前,导入IO包中的类
  使用时,进行IO异常处理
  使用后,释放资源
二.字节流
1.读取文件
  创建FileInputStream对象, 指定一个文件. 文件必须存在, 不存在则会抛出FileNotFoundException
  使用read()方法可以从文件中读取一个字节. 如果读取到文件末尾会读到-1
  读取结束后需要释放资源, 调用close()方法关闭输入流
2.写出文件
  创建FileOutputStream对象, 指定一个文件. 文件不存在会创建新文件, 存在则清空原内容. 如果需要追加, 在构造函数中传入true.
  使用write()方法可以向文件写出一个字节.
  写出结束后同样需要调用close()
3.拷贝文件
  可以从文件中逐个字节读取, 逐个字节写出, 但这样做效率非常低
  我们可以定义一个数组作为缓冲区, 一次读取多个字节装入数组, 然后再一次性把数组中的字节写出1byte = 8bit
4.常用方法
  InputStream:
   read()   读取一个字节
   read(byte[]) 读取若干(数组长度)字节
   available()  获取可读的字节数
   close()   关闭流, 释放资源
  OutputStream:
   write(int)  写出一个字节
   write(byte[]) 写出数组中的所有字节
   write(byte[],start,len);
   close()   关闭流, 释放资源
5.BufferedInputStream
  BufferedInputStream内置了一个缓冲区(数组)
  从BufferedInputStream中读取一个字节时
  BufferedInputStream会一次性从文件中读取8192个, 存在缓冲区中, 返回给程序一个
  程序再次读取时, 就不用找文件了, 直接从缓冲区中获取
  直到缓冲区中所有的都被使用过, 才重新从文件中读取8192个
6.BufferedOutputStream
  BufferedOutputStream也内置了一个缓冲区(数组)
  程序向流中写出字节时, 不会直接写到文件, 先写到缓冲区中
  直到缓冲区写满, BufferedOutputStream才会把缓冲区中的数据一次性写到文件里
  

1 个回复

倒序浏览
总结的比较全面,都是善于总结的人
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马