代码之家  ›  专栏  ›  技术社区  ›  rfgamaral

系统找不到FileWriter指定的路径

  •  5
  • rfgamaral  · 技术社区  · 16 年前

    private static void saveMetricsToCSV(String fileName, double[] metrics) {
            try {
                FileWriter fWriter = new FileWriter(
                        System.getProperty("user.dir") + "\\output\\" +
                        fileTimestamp + "_" + fileDBSize + "-" + fileName + ".csv"
                );
    
                BufferedWriter csvFile = new BufferedWriter(fWriter);
    
                for(int i = 0; i < 4; i++) {
                    for(int j = 0; j < 5; j++) {
                        csvFile.write(String.format("%,10f;", metrics[i+j]));
                    }
    
                    csvFile.write(System.getProperty("line.separator"));
                }
    
                csvFile.close();
            } catch(IOException e) {
                System.out.println(e.getMessage());
            }
        }
    

    但我有个错误:

    C:\Users\Nazgulled\Documents\Workspace\S目录 Amigos\output\1274715228419_5000-List-ImportDatabase.csv (指定)

    知道为什么吗?

    3 回复  |  直到 16 年前
        1
  •  13
  •   leonbloy    10 年前

    您应该检查/创建目录树:

      String filenameFullNoPath = fileTimestamp + "_"  + fileDBSize + "-" 
            + fileName + ".csv";
      File myFile =  new File(System.getProperty("user.dir")  + File.separator 
            + "output" + File.separator + filenameFullNoPath);
      File parentDir = myFile.getParentFile();
      if(! parentDir.exists()) 
          parentDir.mkdirs(); // create parent dir and ancestors if necessary
      // FileWriter does not allow to specify charset, better use this:
      Writer w = new OutputStreamWriter(new FileOutputStream(myFile),charset);
    
        2
  •  2
  •   ems    12 年前

    你可以用 getParentFile Java Doc )以确保父目录存在。下面将检查父目录是否存在,如果不存在,则创建它。

    File myFile =  new File(fileName);
    if(!myFile.getParentFile.exists()) {
         myFile.getParentFile.mkdirs();
    }
    
        3
  •  1
  •   Brett Kail    16 年前

    new File(System.getProperty("user.dir") + File.separator + "output").mkdir();
    
    推荐文章