在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
4条答案
按热度按时间3xiyfsfu1#
在我的项目中,我在src文件夹外创建了一个“logs”文件夹,文件定义如下:
因此,我希望您可以使用File(“/file.txt”)在那里创建一个文件
o2rvlv0m2#
请尝试使用asbolute路径。当您使用相对路径时,文件不会在您认为的文件夹中创建。
您可以尝试以下操作来检查相对路径的位置:
试试看然后告诉我。
编辑:更多信息请参见:http://docs.oracle.com/javase/tutorial/essential/io/pathOps.html
u0sqgete3#
1.用于在任何文件夹中创建
File file = new File("C:\\Users\\YourUserName\\Directory\\fileName.txt");
1.在项目目录中
File = new File("directory/fileName.txt");
1.检查文件是否存在,如果不存在则新建
if (!file.exists()) { file.createNewFile(); }
k5ifujac4#
这取决于您是否在生产级别上执行应用程序,这些东西在本地基本上可以工作,但否则您将被卡住很长一段时间,首先尝试通过键入以下内容来了解您的服务器文件夹使用情况: