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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈培果 高级黑马   /  2014-5-13 14:43  /  938 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 陈培果 于 2014-5-13 16:57 编辑
  1. import java.util.*;
  2. /*
  3. 图片切割问题
  4. */
  5. class  SplitFile
  6. {
  7.         public static void main(String[] args) throws IOException
  8.         {
  9.                 splitFile();
  10.         }
  11.         public static void splitFile()throws IOException
  12.         {
  13.                 FileInputStream fis=new FileInputStream("c:\\1.bmp");
  14.                 FileOutputStream fos=null;

  15.                 byte[] buf=new byte[1024*1024*4];

  16.                 int len=0;
  17.                 int count=1;
  18.                 while ((len=fis.read(buf))!=1)
  19.                 {
  20.                         fos=new FileOutputStream("c:\\splitfiles\\"+(count++)+".part");
  21.                         fos.write(buf,0,len);
  22.                         fos.close();//循环一次切割一次
  23.                 }
  24.                 fis.close();
  25.         }
  26. }
  27. /*
  28. 我完全按照毕老师的代码写的,编译没有问题,运行时出现问题,如图片:
复制代码


1111.png (4.22 KB, 下载次数: 35)

1111.png

2 个回复

倒序浏览
本帖最后由 Yov正 于 2014-5-13 15:10 编辑

1.第20行应该是-1。
2.这个程序运行前需要splitfiles文件夹存在。或者你自己在程序里面添加创建语句。比如main里开始添加
  1. new File("e:\\splitfiles").mkdir();
复制代码

3.我改成e盘里面玩了,在c盘根目录玩可能会有windows的权限问题,在e盘更方便
4,把可能出错的语句添加进try块,便于自己找错。比如
  1. try {
  2.                         fis.close();
  3.                 } catch (Exception e) {
  4.                         // TODO 自动生成的 catch 块
  5.                         System.out.println("33333333333");
  6.                 }
复制代码

评分

参与人数 1技术分 +1 收起 理由
SyouRai_Tsk + 1

查看全部评分

回复 使用道具 举报 1 0
Yov正 发表于 2014-5-13 15:08
1.第20行应该是-1。
2.这个程序运行前需要splitfiles文件夹存在。或者你自己在程序里面添加创建语句。比如m ...

恩恩,问题解决了,谢谢啊大神
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马