簡體   English   中英

如何在Java中的項目文件夾中創建文件?

[英]How to create file in a project folder in Java?

在JsonOperation類中:

public void writeJson(String path, JSONObject passedJsonObj){
    File file = new File(path);
    try{
        if (!file.exists()){
            file.createNewFile();
        }
        FileWriter writer = new FileWriter(file);
        writer.write(passedJsonObj.toJSONString());
        writer.flush();
        writer.close();
    }catch(IOException e){
        e.printStackTrace();
    }
}

在我的主叫班上:

    LocalDate todayDate = LocalDate.now();
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    String dateString = todayDate.format(formatter).toString();

    JsonOperation jsonOp = new JsonOperation();
    jsonOp.writeJson("srcsample/SaveData.json", jsonOp.toJsonObj("dateToday", dateString) );

運行此程序時,出現以下錯誤:

java.io.IOException: The system cannot find the path specified
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(File.java:1012)
    at sample.JsonOperation.writeJson(JsonOperation.java:50)
    at sample.Main.saveData(Main.java:58)
    at sample.Main.start(Main.java:29)
    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$159(LauncherImpl.java:863)
    at com.sun.javafx.application.LauncherImpl$$Lambda$52/384953125.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$172(PlatformImpl.java:326)
    at com.sun.javafx.application.PlatformImpl$$Lambda$48/113087735.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl.lambda$null$170(PlatformImpl.java:295)
    at com.sun.javafx.application.PlatformImpl$$Lambda$50/949297714.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl.lambda$runLater$171(PlatformImpl.java:294)
    at com.sun.javafx.application.PlatformImpl$$Lambda$49/59984698.run(Unknown Source)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.lambda$null$145(WinApplication.java:101)
    at com.sun.glass.ui.win.WinApplication$$Lambda$38/665838427.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:745)

當我改變

jsonOp.writeJson("\\src\\sample\\SaveData.json", jsonOp.toJsonObj("dateToday", dateString) );

進入

jsonOp.writeJson("SaveData.json", jsonOp.toJsonObj("dateToday", dateString) );

它不會給我任何錯誤,但是會在src文件夾之外創建文件。 如何在示例文件夾中創建文件?

我的項目層次結構: WordToday>src>sample

在我的項目中,我使用文件定義在src文件夾之外創建了一個“ logs”文件夾:

File file = new File("logs/file.txt");

因此,我希望您可以使用File(“ / file.txt”)在此處創建文件

嘗試使用匹配路徑。 當您使用相對路徑時,不會在您認為是的文件夾內創建文件。

您可以嘗試以下方法檢查相對路徑在哪里:

Path currentRelativePath = Paths.get("");
String s = currentRelativePath.toAbsolutePath().toString();
System.out.println("Current relative path is: " + s);

試試看,讓我知道。

編輯:有關更多信息,請參見此: http : //docs.oracle.com/javase/tutorial/essential/io/pathOps.html

  1. 用於在任何文件夾中創建

    File file = new File("C:\\\\Users\\\\YourUserName\\\\Directory\\\\fileName.txt");

  2. 對於項目目錄

    File = new File("directory/fileName.txt");

  3. 檢查文件是否存在,如果不存在則創建新文件

    if (!file.exists()) { file.createNewFile(); }

暫無
暫無

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

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