黑马程序员技术交流社区

标题: 如何切割一个文件 [打印本页]

作者: haha_hyq    时间: 2012-9-19 23:46
标题: 如何切割一个文件
如何将一个文件进行切割  图片 或者音乐?
作者: 何小红    时间: 2012-9-19 23:48
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;

public class SplitFileTest {

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

                /*
                 * 文件切割。
                 *
                 *需要配置文件记录碎片文件的个数。被切文件的名称。
                 *partCount = 6
                 *srcfilename = 0.mp3
                 *键值对,并持久化,需要用到Properties。
                 */
                File srcFile = new File("d:\\0.mp3");
                File destDir = new File("d:\\partfiles");
                if(!destDir.exists())
                        destDir.mkdir();
               
                FileInputStream fis = new FileInputStream(srcFile);
               
                FileOutputStream fos = null;
               
                byte[] buf = new byte[1024*1024];
               
                int len = 0;
                int count = 1;
                while((len=fis.read(buf))!=-1){
                       
                        fos = new FileOutputStream(new File(destDir,(count++)+".part"));
                        fos.write(buf,0,len);
                        fos.close();
                }
                File configFile = new File(destDir,count+".properties");
                fos = new FileOutputStream(configFile);
               
               
                Properties prop = new Properties();
               
                prop.setProperty("partcount", Integer.toString(count-1));
                prop.setProperty("srcfilename", srcFile.getName());
               
                prop.store(fos, "");
               
                fos.close();
                fis.close();
               
        }

}

作者: 牛杨    时间: 2012-9-19 23:50
毕老师视频里有啊 老兄。我都懒得翻笔记了都
作者: 赵永康    时间: 2012-9-20 00:16
我就不说代码了 楼上已经说了 简单说说其中的原理吧  假如你要把3M的文件切割成1M的 这时候你就定义一个1M的数组,将独到的数据存到这个数组中,再将数组中的数据全部写到文件中。但是你不能每次写到同一个文件中,你就需要将写的这个动作 定义在读循环的里面,并不是将写出的流一次性定义好!并且每次写完后的文件名称不能一样!大致就是这样的思想了 望楼主自己再写写看看吧

相应的合并文件是同一个原理 就要用到Sequence流和枚举了 查查文档 应该可以做出来的
作者: 汪小照    时间: 2012-9-20 07:55
这个代码,毕老师讲的很清楚,你可以回头再看毕老师的视频




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2