java.io.IOException: 参数不正确。

Sandy_csy 2013-09-12 12:21:02
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)
请问是什么问题? 这是我从去年写的一个项目中拷贝出来的代码,在那个项目中这些个代码是可用的,拷贝过来后立马出错。我找不到问题所在,请各位大神帮忙!
...全文
3103 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
JPF1024 2013-09-25
  • 打赏
  • 举报
回复
引用 15 楼 Sunny_QQlogin 的回复:
问题已经解决了,貌似是文件名的命名错误,我将原本用当前时间GETDATE()来命名的文件名该了之后就可以运行了,但是我并没有找到java中或者window OS中不能用时间来命名文件的规范。
会不会是把DATE换成字符串就可以了?
Sandy_csy 2013-09-25
  • 打赏
  • 举报
回复
问题已经解决了,貌似是文件名的命名错误,我将原本用当前时间GETDATE()来命名的文件名该了之后就可以运行了,但是我并没有找到java中或者window OS中不能用时间来命名文件的规范。
请叫我益达张 2013-09-18
  • 打赏
  • 举报
回复
应该是你测试环境的问题。我在自己电脑下运行正常,文件也创建出来了。
Sandy_csy 2013-09-18
  • 打赏
  • 举报
回复
引用 11 楼 losebaby 的回复:
spr里有多少个"/"啊?如果一下要创建多级的目录,那我恭喜你, at java.io.WinNTFileSystem.createFileExclusively(Native Method)就会出来和你打招呼了 目录只能一级一级的建 5楼的兄弟贴的这个很有用
就在D盘下创建一个叫log的文件夹,然后再创建一个文件。
Sandy_csy 2013-09-18
  • 打赏
  • 举报
回复
引用 10 楼 qq864680621 的回复:
String distory = "D:" + spr + "log"; String fileName = "礼品汇总" + df.format(new Date()) + ".xls"; file = new File(distory, fileName); 请看一下你这里获取到的distory路径,windows下面应该是\。
String spr = File.separator; 是会自动在不同的OS下选择不同的符号:// / \
Sandy_csy 2013-09-17
  • 打赏
  • 举报
回复
看来还是环境的问题,因为这段代码在其他项目中可以使用,我刚刚测试过了。 只求能找到有遇到同种问题的童鞋来解救了。
Sandy_csy 2013-09-17
  • 打赏
  • 举报
回复
引用 5 楼 ch656409110 的回复:
我测试了代码没问题,,另外你出的错误解决方案如下 http://blog.csdn.net/taochenpfj/article/details/4334664
没看到有解决方案!!谢谢
Sandy_csy 2013-09-17
  • 打赏
  • 举报
回复
引用 4 楼 oOrayOo 的回复:
java.io.IOException: 系统找不到指定的路径。 at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:883) 这是我把D盘改成X后的效果。log 和 文件 都是程序生成不会有错只有盘符是固定好的,应该是你测试的环境下没有D盘。
我把D盘改成C盘也就是系统盘,也是一样的错误。但是要说没找到盘符也不可能,因为它创建了log这个文件夹,只是在创建文件时报错。
可乐罐 2013-09-17
  • 打赏
  • 举报
回复
spr里有多少个"/"啊?如果一下要创建多级的目录,那我恭喜你, at java.io.WinNTFileSystem.createFileExclusively(Native Method)就会出来和你打招呼了 目录只能一级一级的建 5楼的兄弟贴的这个很有用
踩踩一哥 2013-09-17
  • 打赏
  • 举报
回复
String distory = "D:" + spr + "log"; String fileName = "礼品汇总" + df.format(new Date()) + ".xls"; file = new File(distory, fileName); 请看一下你这里获取到的distory路径,windows下面应该是\。
bayougeng 2013-09-17
  • 打赏
  • 举报
回复
换个JRE试试
RAY_MAO 2013-09-12
  • 打赏
  • 举报
回复
java.io.IOException: 系统找不到指定的路径。 at java.io.WinNTFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:883) 这是我把D盘改成X后的效果。log 和 文件 都是程序生成不会有错只有盘符是固定好的,应该是你测试的环境下没有D盘。
Sandy_csy 2013-09-12
  • 打赏
  • 举报
回复
路径都有的,我去年的项目都是用这个路径测试的。
RAY_MAO 2013-09-12
  • 打赏
  • 举报
回复
你是不是没有D盘。。。
Sandy_csy 2013-09-12
  • 打赏
  • 举报
回复
是这行代码报出的异常 file.createNewFile(); 。。。。
  • 打赏
  • 举报
回复
我测试了代码没问题,,另外你出的错误解决方案如下 http://blog.csdn.net/taochenpfj/article/details/4334664

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧