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 javaio

解决方案 »

  1.   

    是这行代码报出的异常
    file.createNewFile();
      

  2.   

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

  3.   

    我测试了代码没问题,,另外你出的错误解决方案如下http://blog.csdn.net/taochenpfj/article/details/4334664
      

  4.   

    我把D盘改成C盘也就是系统盘,也是一样的错误。但是要说没找到盘符也不可能,因为它创建了log这个文件夹,只是在创建文件时报错。
      

  5.   

    String distory = "D:" + spr + "log";
            String fileName = "礼品汇总" + df.format(new Date()) + ".xls";
            file = new File(distory, fileName);
    请看一下你这里获取到的distory路径,windows下面应该是\。
      

  6.   

    spr里有多少个"/"啊?如果一下要创建多级的目录,那我恭喜你,
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)就会出来和你打招呼了目录只能一级一级的建5楼的兄弟贴的这个很有用
      

  7.   

     String spr = File.separator;
    是会自动在不同的OS下选择不同的符号://  /  \
      

  8.   

    就在D盘下创建一个叫log的文件夹,然后再创建一个文件。
      

  9.   

    问题已经解决了,貌似是文件名的命名错误,我将原本用当前时间GETDATE()来命名的文件名该了之后就可以运行了,但是我并没有找到java中或者window OS中不能用时间来命名文件的规范。
      

  10.   

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