黑马程序员技术交流社区
标题:
关于使用BufferedInputStream复制图片的问题
[打印本页]
作者:
王春蕾
时间:
2014-5-20 10:11
标题:
关于使用BufferedInputStream复制图片的问题
我定义了一个方法来使用BufferedInputStream和BufferedOutputStream来复制图片,代码如下:
String fromPath = "D:\\aa.png";
String toPath = "C:\\a.png";
private static void copyPicByBuffer(String fromPath, String toPath) {
// TODO Auto-generated method stub
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
bis = new BufferedInputStream(new FileInputStream("fromPath"));
bos = new BufferedOutputStream(new FileOutputStream("toPath"));
byte[] buf = new byte[1024];
int len = 0;
while ((len = bis.read(buf)) != -1) {
bos.write(buf, 0, len);
bos.flush();
}
System.out.println("Finished copying picture by buffer");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (bis != null) {
try {
bis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
if(bos!=null){
try {
bos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
复制代码
为什么运行的时候提示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