簡體   English   中英

系統找不到FileWriter指定的路徑

[英]The system cannot find the path specified with FileWriter

我有這個代碼:

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(系統找不到指定的路徑)

知道為什么嗎?

如果重要的話,我在Windows 7上使用NetBeans ...

通常,只有父目錄存在時,Java才會創建不存在的文件。 您應該檢查/創建目錄樹:

  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);

您可以使用getParentFileJava Doc )來確保父目錄存在。 以下將檢查父目錄是否存在,如果不存在則創建它。

File myFile =  new File(fileName);
if(!myFile.getParentFile.exists()) {
     myFile.getParentFile.mkdirs();
}

我猜測“輸出”目錄不存在。 嘗試添加:

new File(System.getProperty("user.dir") + File.separator + "output").mkdir();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM