File f = new File(d:/io/test.txt);
f.mkdirs();
f.createNewFile();
但是结果却是创建了两个目录:io和test.txt,也就是说我本打算创建一个test.txt文件,结果却变成了目录。如何创建一个文件呢??

解决方案 »

  1.   

    import java.io.File;
    public class Test{
     public static void main(String[] args) throws Exception {
     File f = new File("d:/io");
     f.mkdirs();
     f = new File("d:/io/test.txt");
     f.createNewFile(); 
        }
    }
      

  2.   

    很简单,把f.mkdirs(); 删了就行,这个事创建目录的意思。
    另外你的File f = new File(d:/io/test.txt); 是不应该为File f = new File("d:/io/test.txt"); 
      

  3.   

    File d = new File("D:\\io\\test.txt");
    d.createNewFile();
      

  4.   


    /**
     * 创建或者删除文件
     * @param filePath
     * @param fileName
     * @return
     * @throws IOException
     */
    public boolean createAndDeleteFile(String filePath,String fileName)throws IOException
    {
    boolean result=false;
    File file=new File(filePath,fileName);
    if(file.exists())
    {
    file.delete();
    result=true;
    System.out.println("文件已经被成功删除");
    }
    else
    {

    file.createNewFile();
    result=true;
    System.out.println("文件已经被成功创建");
    }
    return result;
    }
      

  5.   

    楼主你仔细看看mkdirs()的API就知道了    创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。是创建目录(而且包括父目录),不是创建文件
      

  6.   

    同意一楼的写法。
    createNewFile() 
       如果相关目录不存在会报错的。
    mkdirs()
       创建此抽象路径名指定的目录,包括创建必需但不存在的父目录。
      

  7.   

    File f = new File(d:/io/test.txt);
    File pf = f.getParentFile();
    if(!pf.exists()){
     pf.mkdirs();
    }
    if(!f.exists()){
     f.creatNewFile();
    }