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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘家斌 中级黑马   /  2014-10-22 20:20  /  1517 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 刘家斌 于 2014-10-22 22:13 编辑

如题,这样怎么不行?
  1. class Demo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 FileInputStream fis=null;
  6.                 FileOutputStream fos=null;
  7.                 try
  8.                 {
  9.                         fis=new FileInputStream("F:\\Output.JPG");
  10.                         fos=new FileOutputStream("F:\\In.JPG");
  11.    
  12.                         int num=0;
  13.                         while((num=fis.read())!=-1)
  14.                                 fos.write(num);
  15.                 }
  16.                 catch (IOException e)
  17.                 {
  18.                         throw new RuntimeException("复制失败");
  19.                 }
  20.                 finally
  21.                 {
  22.                         try
  23.                         {
  24.                                 if(fis!=null)
  25.                                         fis.close();
  26.                         }
  27.                         catch (IOException e)
  28.                         {
  29.                                 throw new RuntimeException("关闭输入流失败");
  30.                         }
  31.                         finally
  32.                         {
  33.                                 try
  34.                                 {
  35.                                         if(fos!=null)
  36.                                         fos.close();

  37.                                 }
  38.                                 catch (IOException i)
  39.                                 {
  40.                                         throw new RuntimeException("关闭输出流失败");
  41.                                 }

  42.                         }
  43.                 }
  44.         }
  45. }
复制代码

9 个回复

倒序浏览
测试一下可以复制啊。楼主是不是没有导包。总之我成功了
回复 使用道具 举报
森屿北巷 发表于 2014-10-22 21:00
测试一下可以复制啊。楼主是不是没有导包。总之我成功了

不知道啊,我没有成功,难道是电脑问题?奇怪。。。
回复 使用道具 举报
可以复制成功,但是有个小问题。
while((num=fis.read())!=-1)
          fos.write((byte)num);
你前面定义了byte数组,这儿就要用吗,要不复制的效率太低了。
while((num=fis.read(b))!=-1)
          fos.write(b);
回复 使用道具 举报
  1. fis = new FileInputStream("E:\\Output.JPG"); //问题可能出在文件名, 你仔细看看你的盘目录下是否有
  2.                         fos = new FileOutputStream("E:\\In.JPG");//Output.JPG
  3.                         byte[] b = new byte[1024];//定义缓冲区没有使用.
  4.                         int num = 0;
  5.                         while ((num = fis.read()) != -1)
  6.                                 fos.write((byte) num); //int为什么要转byte? 32位数据转成 8位数据,太危险了吧.
复制代码
回复 使用道具 举报

不是这个,我刚开始没转,后来不行才试着改的,还是不行
回复 使用道具 举报
Chopper 中级黑马 2014-10-23 14:56:00
7#
文件名正确吗?
回复 使用道具 举报
很正常。。我之前有个服务端和客户端的上传文件也是你这样。。在自己的eclipse上报错,在别人那别试一下就没事
回复 使用道具 举报
import java.io.*;
回复 使用道具 举报
EDDY_Liang 发表于 2014-10-23 16:04
很正常。。我之前有个服务端和客户端的上传文件也是你这样。。在自己的eclipse上报错,在别人那别试一下就 ...

嗯,谢谢了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马