黑马程序员技术交流社区

标题: 关于使用BufferedInputStream复制图片的问题 [打印本页]

作者: 王春蕾    时间: 2014-5-20 10:11
标题: 关于使用BufferedInputStream复制图片的问题
我定义了一个方法来使用BufferedInputStream和BufferedOutputStream来复制图片,代码如下:
                String fromPath = "D:\\aa.png";
                String toPath = "C:\\a.png";
  1.         private static void copyPicByBuffer(String fromPath, String toPath) {
  2.                 // TODO Auto-generated method stub
  3.                 BufferedInputStream bis = null;
  4.                 BufferedOutputStream bos = null;
  5.                 try {
  6.                         bis = new BufferedInputStream(new FileInputStream("fromPath"));
  7.                         bos = new BufferedOutputStream(new FileOutputStream("toPath"));
  8.                         byte[] buf = new byte[1024];
  9.                         int len = 0;
  10.                         while ((len = bis.read(buf)) != -1) {
  11.                                 bos.write(buf, 0, len);
  12.                                 bos.flush();
  13.                         }
  14.                         System.out.println("Finished copying picture by buffer");
  15.                 } catch (IOException e) {
  16.                         // TODO Auto-generated catch block
  17.                         e.printStackTrace();
  18.                 } finally {
  19.                         if (bis != null) {
  20.                                 try {
  21.                                         bis.close();
  22.                                 } catch (IOException e) {
  23.                                         // TODO Auto-generated catch block
  24.                                         e.printStackTrace();
  25.                                 }
  26.                         }
  27.                         if(bos!=null){
  28.                                 try {
  29.                                         bos.close();
  30.                                 } catch (IOException e) {
  31.                                         // TODO Auto-generated catch block
  32.                                         e.printStackTrace();
  33.                                 }
  34.                         }
  35.                 }
  36.         }
复制代码

为什么运行的时候提示java.io.FileNotFoundException: fromPath (系统找不到指定的文件。)错误啊!
我确定我指定的路径文件都是存在的啊!
作者: skill20    时间: 2014-5-20 10:26
在new流对象的时候路径不用引号。还有个字节流不用flush。
作者: 海世山盟    时间: 2014-5-20 10:35
bis = new BufferedInputStream(new FileInputStream("fromPath"));                         bos = new BufferedOutputStream(new FileOutputStream("toPath"));
作者: 海世山盟    时间: 2014-5-20 10:36
你应该是传递的参数,如果你加了引号了  系统自动去找fromPath这个问价,当然会出现文件未找到异常了。
作者: 海世山盟    时间: 2014-5-20 10:44
还有一个问题,FileOutPutStream 里面的参数是一个字符串,那么表示你复制后的文件名为toPath并且在你的c盘下。你的目的是将c盘的东西复制到d盘,因此可以传递一个file类型的参数才行,或者将topath封装成file。

作者: gentleman    时间: 2014-5-20 11:21
bis = new BufferedInputStream(new FileInputStream("fromPath"))
  bos = new BufferedOutputStream(new FileOutputStream("toPath"));
这里传的fromPfath和toPath不可以用“”括起来!!这是你定义的变量,你括起来就成了字符串了
作者: 周俊波    时间: 2014-5-20 12:10
new FileInputStream("fromPath")//这里你传进去的是字符串“formPath”,而不是fromPath这个变量了,所以说找不到文件啦
作者: 王者之风西昆仑    时间: 2015-1-7 13:22
还没学到这里,感觉好复杂的样子




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