IO流

来源:互联网 发布:苹果怎么打开php文件夹 编辑:程序博客网 时间:2024/06/05 18:51

输入输出流(IO流)

  • 字节流

    • 字节流可以处理所有数据(计算机识别的是一个字节),InputStream和OutputStream是字节流的积类,能用字符流的地方都可以用字节流。
    • InputStream表示字节输入流,OutputStream表示字节输出流,可以拷贝文件。
    • public class LianXi1 {    public static void main(String[] args) throws Exception {        //创建一个字节输入流,存放要拷贝的文件        InputStream in=new FileInputStream("D:\\kk 2017-06-13 22-28-37.avi\\");        //字节输出流,读取要拷贝的文件,地址        OutputStream out=new FileOutputStream("E:\\kk 2017-06-13 22-28-37.avi\\");        int len;        //拷贝文件前的系统时间        long begintime=System.currentTimeMillis();        while((len=in.read())!=-1){            //字节写入文件            out.write( len);        }        //获取文件拷贝结束的系统时间        long endtime=System.currentTimeMillis();        System.out.println("拷贝文件所消耗的时间是:"+(endtime-begintime)+"毫秒");        in.close();        out.close();    }}
  • 转换流

    • InputStreamReader可以将字节流转换成字符流,OutputStreamWriter可以将字符流转换成字节流,代码中用BufferedReader和BufferedWriter包装转换流来提高性能。

      public class LianXi2 {    public static void main(String[] args) throws Exception {        //创建字节输入流        FileInputStream in=new FileInputStream("src.txt");        //将字节输入流转换成字符输入流        InputStreamReader isr=new InputStreamReader(in);        //对字符流对象进行包装        BufferedReader br=new BufferedReader(isr);        FileOutputStream out=new FileOutputStream("des.txt");        //将字节输入流转换成字符输入流        OutputStreamWriter osw=new OutputStreamWriter(out);        BufferedWriter bw=new BufferedWriter(osw);        String line;        while((line=br.readLine())!=null){            bw.write(line);        }        br.close();        bw.close();    }}
  • IO流按照方向分,可以分为输入流(读取),输出流(写入)(这些都是相对于内存而言)。

  • 按照操作数据可以分为字节流和字符流,字节流可以处理所有的数据,包含一个字节

    • InputStream
      • (FileinputStream,BufferedInputStream)
    • OutputStream
      • (FileOutputStream(avaliable),BufferdOutputStream);
    • 字符流可以处理文本数据,两个字节,原理是根据两个字节去查找指定的编码表(unicode),获得相应的字符(Reader,Writer)。
      • Reader(读,输入流)
        • FileReader:读取基本步骤,打开文件–>读取(单个或char数组)–>关闭
          *BufferReader:自带缓存
      • Writer (写,输出流)
        • FileWriter:写入的基本步骤打开文件–>写入缓存—>刷新缓存—>关闭文件
        • BufferedWriter
  • 按照功能可以分为包装流和节点流

原创粉丝点击