黑马程序员技术交流社区

标题: 今天老师讲了分割文件,觉得很有意思,补了注释,分享。 [打印本页]

作者: 张迁    时间: 2013-5-20 22:36
标题: 今天老师讲了分割文件,觉得很有意思,补了注释,分享。
  1. package cn.itcast.exercise;

  2. import java.io.BufferedInputStream;
  3. import java.io.BufferedOutputStream;
  4. import java.io.File;
  5. import java.io.FileInputStream;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;

  8. public class Exercise5 {

  9.        
  10.         public static void main(String[] args) throws IOException {
  11.                
  12.                 File file = new File("C:/半岛铁盒.mp3");                                //给文件创建对象
  13.                 cut (file);                                                                                        //调用方法切割文件
  14.         }
  15.        
  16.         public static void cut (File file) throws IOException {
  17.                
  18.                 long length = file.length() / 5 + 1;                                //规定分割的每个文件的大小,分成五块
  19.                 File newfile = new File (file.getParent(),".temp");        //在要分割文件目录下创建文件夹对象
  20.                 newfile.mkdir();                                                                        //创建文件夹
  21.                
  22.                 BufferedInputStream bis = new BufferedInputStream (new FileInputStream (file));        //定义输入流,对于音频文件使用字节流进行读写。字符流只能处理纯文本文件。
  23.                
  24.                         for (int i = 0; i < 5 ; i ++) {                                        //循环五次,分割成5个文件
  25.                         try ( BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(new File (newfile,i + "")));        //定义输出流。jdk1.7新特性,实现了Closeable接口的类使用try(){}格式不用关闭流。
  26.                         ){
  27.                                 for (int j = 0; j <length; j++){                        //规定循环次数
  28.                                         int s = bis.read();                                                //按字节读取文件
  29.                                         if (s == -1)                                                        //读到文件结尾,跳出循环
  30.                                                 break;
  31.                                         bos.write(s);                                                        //按字节写文件
  32.                                 }
  33.                         }
  34.                        
  35.                 }
  36.                 bis.close();                                                                                //关闭输入流。
  37.                 file.delete();                                                                                //删除之前必须关闭流。
  38.                 newfile.renameTo(file);                                                                //虽然文件被删除了,但是文件对象还在,可以用它来改名。
  39.         }
  40. }
复制代码

作者: 韩秀山    时间: 2013-5-20 22:42
顶一个!!我使用分割, 玩了一下午。呵呵!!!!
作者: 张林敏    时间: 2013-5-21 12:38
不错,顶一个.....
作者: 袁梦希    时间: 2013-5-21 12:42
分享的不错    继续努力   加油兄弟




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