zoukankan      html  css  js  c++  java
  • java IO流之文件切割两例(含Properties 用法)

    package cn.itcast.io.p1.splitfile;

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.util.Properties;

    /*
     * 文件切割器。
     *
     *
     *
     *
     */

    public class SplitFileDemo {

     private static final int SIZE = 1024 * 1024;

     /**
      * @param args
      * @throws Exception
      */
     public static void main(String[] args) throws Exception {

      File file = new File("c:\aa.mp3");

      splitFile_2(file);
     }

     private static void splitFile_2(File file) throws IOException {

      // 用读取流关联源文件。
      FileInputStream fis = new FileInputStream(file);

      // 定义一个1M的缓冲区。
      byte[] buf = new byte[SIZE];

      // 创建目的。
      FileOutputStream fos = null;

      int len = 0;
      int count = 1;
      
      
      /*
       * 切割文件时,必须记录住被切割文件的名称,以及切割出来碎片文件的个数。 以方便于合并。
       * 这个信息为了进行描述,使用键值对的方式。用到了properties对象
       *
       */
      Properties prop  = new Properties();
      
     

      File dir = new File("c:\partfiles");
      if (!dir.exists())
       dir.mkdirs();

      while ((len = fis.read(buf)) != -1) {

       fos = new FileOutputStream(new File(dir, (count++) + ".part"));
       fos.write(buf, 0, len);
       fos.close();
      }
      
      //将被切割文件的信息保存到prop集合中。
      prop.setProperty("partcount", count+"");
      prop.setProperty("filename", file.getName());
      
      
      
      fos = new FileOutputStream(new File(dir,count+".properties"));
      
      //将prop集合中的数据存储到文件中。
      prop.store(fos, "save file info");

      fos.close();
      fis.close();

     }

     public static void splitFile(File file) throws IOException {

      // 用读取流关联源文件。
      FileInputStream fis = new FileInputStream(file);

      // 定义一个1M的缓冲区。
      byte[] buf = new byte[SIZE];

      // 创建目的。
      FileOutputStream fos = null;

      int len = 0;
      int count = 1;

      File dir = new File("c:\partfiles");
      if (!dir.exists())
       dir.mkdirs();

      while ((len = fis.read(buf)) != -1) {

       fos = new FileOutputStream(new File(dir, (count++) + ".part"));
       fos.write(buf, 0, len);
      }

      fos.close();
      fis.close();

     }

    }

  • 相关阅读:
    winform中主窗体可以实现拖动代码
    winform中自定义窗体启动位置
    winform中启动登陆窗体,登陆成功后登陆窗体自动销毁
    winform中隐藏窗体边框
    作业2
    画图
    作业
    day01
    java.String中的方法
    网站的内链反链黑链
  • 原文地址:https://www.cnblogs.com/flying607/p/3435807.html
Copyright © 2011-2022 走看看