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

java.io.IOException: 参数不正确。
File file = null;
String spr = File.separator;
String distory = "D:" + spr + "log";
String fileName = "礼品汇总" + df.format(new Date()) + ".xls";
file = new File(distory, fileName);
if (file.exists()) {
// 文件已经存在,输出文件的相关信息
} else {
// 先创建文件所在的目录
file.getParentFile().mkdirs();
try {
// 创建新文件
file.createNewFile();
} catch (IOException e) {
e.printStackTrace();
}
}

报出异常:java.io.IOException: 参数不正确。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:850)
请问是什么问题? 这是我从去年写的一个项目中拷贝出来的代码,在那个项目中这些个代码是可用的,拷贝过来后立马出错。我找不到问题所在,请各位大神帮忙!
java?io? java io

------解决方案--------------------
你是不是没有D盘。。。
------解决方案--------------------
java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:883)
这是我把D盘改成X后的效果。log 和 文件 都是程序生成不会有错只有盘符是固定好的,应该是你测试的环境下没有D盘。
------解决方案--------------------
我测试了代码没问题,,另外你出的错误解决方案如下

http://blog.csdn.net/taochenpfj/article/details/4334664

------解决方案--------------------
换个JRE试试
------解决方案--------------------
String distory = "D:" + spr + "log";
        String fileName = "礼品汇总" + df.format(new Date()) + ".xls";
        file = new File(distory, fileName);
请看一下你这里获取到的distory路径,windows下面应该是\。
------解决方案--------------------
spr里有多少个"/"啊?如果一下要创建多级的目录,那我恭喜你,
at java.io.WinNTFileSystem.createFileExclusively(Native Method)就会出来和你打招呼了

目录只能一级一级的建

5楼的兄弟贴的这个很有用
------解决方案--------------------
应该是你测试环境的问题。我在自己电脑下运行正常,文件也创建出来了。
------解决方案--------------------
引用:
问题已经解决了,貌似是文件名的命名错误,我将原本用当前时间GETDATE()来命名的文件名该了之后就可以运行了,但是我并没有找到java中或者window OS中不能用时间来命名文件的规范。

会不会是把DATE换成字符串就可以了?