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

© 幺零夭夭 中级黑马   /  2015-11-6 19:08  /  369 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class SplitFileDemo {
        private static final int SIZE = 1024 * 1024;
        public static void main(String[] args) throws IOException {
                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();
                 }
}

1 个回复

倒序浏览
kankan  看看  学习一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马