日期:2014-05-20  浏览次数:20775 次

FileInputStream FileNotFoundException知道问题在哪里,不知道怎么产生的
就一行代码:
Java code

// A:
FileInputStream inputStream = new FileInputStream(new File("D:\\NEW_IMAGE"));//产生异常
// B:
File file = new File("D:\\NEW_IMAGE");
FileInputStream inputStream = new FileInputStream(file);//产生异常


上面两种写法都会产生同一个异常。
可以确定的是D:\\NEW_IMAGE这个目录是存在的。
产生的异常为:
java.io.FileNotFoundException: D:\NEW_IMAGE (拒绝访问。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)

Java code

FileInputStream inputStream = new FileInputStream("D:\\NEW_IMAGE\\a.txt"));//这样些就不会产生异常



上面的异常貌似是FileInputStream 不能操作文件夹,只能操作文件。

大家说说我错在什么地方?多谢大家指教。

------解决方案--------------------
上面的异常貌似是FileInputStream 不能操作文件夹,只能操作文件。

就是这个原因。
------解决方案--------------------
FileNotFoundException - if the file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading.
------解决方案--------------------
判断服务器上有没有文件夹,如果没有就创建,然后再写文件。
------解决方案--------------------
FileOutputStream fout = new FileOutputStream("D:/NEW_IMAGE");
DataOutputStream dout = new DataOutputStream(fout);
long start = System.currentTimeMillis();
//读取原文件的输入流
FileInputStream f = new FileInputStream("d:/heihei.RMVB");
DataInputStream d = new DataInputStream(f);

//-创建一个byte类型数组,定义数据包的大小为2048 (2kb)
byte b[] = new byte[2048];

int i = d.read(b);//读取文件的内容返回值是 本次读取到的字节的长度
while(i != -1){
dout.write(b,0,i);
dout.flush();
i = d.read(b);
}
f.close();
d.close();
fout.close();
dout.close();