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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
顶一个!!我使用分割, 玩了一下午。呵呵!!!!
回复 使用道具 举报
不错,顶一个.....
回复 使用道具 举报
分享的不错    继续努力   加油兄弟
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马