zoukankan      html  css  js  c++  java
  • Java学习笔记-Java文件操作流

     day03

    输入输出流:读入写出
     
     节点流:
       有明确的来源和去向
       往往对字节操作
     节点流又叫低级流、字节流
     
      处理流:
      没有明确的来源和去向
      往往对低级流或其他高级流进行操作,不能独立存在
      处理流又叫高级流

    *FileOutputStream fos=new FileOutputStream("a.txt",true);     //创建对象,在当前目录下创建一个名为“a”的txt文件

     //FileOutputStream默认会覆盖原有的内容 若不想被覆盖,声明对象时添加一个参数true

    *  String message="断剑重铸之日,其势归来之时。";

    *  fos.write(message.getBytes());

    *fos.close()                           //记得关闭流,否则可能会造成严重后果

    例:用字节流来复制某个文件

    *FileInputStream fis1=new FileInputStream("文件名.文件类型");                  //读入
    *  long ms1=System.currentTimeMillis();
    *  byte []buf1=new byte[文件大小(单位b)];
    *  fis1.read(buf1);
    *  FileOutputStream fis2=new FileOutputStream("复制的文件文件名.文件类型");            //写出  
    *  fis2.write(buf1);
    *  long ms2=System.currentTimeMillis();
    *  System.out.println(ms2-ms1);                                //用时(毫秒)
    *  fis2.close();

     BufferedInputStream/BufferedOutputStream:

    缓冲高级流。内部维护了一个缓冲区,当我们需要写出数据时,会将数据存放在缓冲区,当缓冲区满时,一次性将数据写出。高级流需要用要用低级流作为辅助。

    *FileOutputStream fos=new FileOutputStream("b.txt");        //低级流(字节流)

    *BufferedOutputStream bos=new BufferedOutputStream(fos);      //高级流  (两者都为写出流)

    *  String message="德玛西亚之力";                
     
    * byte[]buf=message.getBytes();                  //将字符串转换为字节,用数组接收
    *  bos.write(buf);                         //写出                  

    *  bos.close();                          //关闭高级流即可

    用高级流复制文件:

      FileInputStream fos = new FileInputStream("文件名.文件类型");
      BufferedInputStream bos = new BufferedInputStream(fos);
      
      byte[] b = new byte[10240];                     //可以不调用数组进行复制
      
      FileOutputStream fis = new FileOutputStream("复制出的文件文件名.文件类型");
      BufferedOutputStream bis = new BufferedOutputStream(fis);
      
      long a1 = System.currentTimeMillis();
      int i = -1;
      while ((i = bos.read(b)) != -1) {              //(i = bos.read()) != -1 此注释与数组相关
       bis.write(b);                    
       //bis.write(i);
      }
      bis.close();
      bos.close();
      long a2 = System.currentTimeMillis();
      System.out.println(bs - a);              //计算用时(单位毫秒)
  • 相关阅读:
    <转>浅谈DNS体系结构:DNS系列之一
    SOA和NS区别
    《浅析各类DDoS攻击放大技术》
    《转》DNS放大攻击
    Linux创建公钥
    MATLAB 中有哪些命令,让人相见恨晚
    SQL中的declare用法
    SQl server 附加数据库失败如何解决
    VS中代码对齐等快捷键
    C#窗口控件Dock的位置顺序调整方法
  • 原文地址:https://www.cnblogs.com/cgwjava/p/11390807.html
Copyright © 2011-2022 走看看