在WIN7中使用Java在分包中的文件中写入JSON
Write JSON in a file in subpackage using Java in WIN7
我在一个名为 com.project.test
的包中有一个 Java class,我想在一个名为 Output.json
的文件中写一些 JSON位于名为 com.project.test.sources
.
的子包中
这是我试过的代码:
String gsonGraphe = gson.toJson(graphe); /* This is the JSON code to write */
File file = new File("sources/Output.json");
if (!file.exists()) {
file.createNewFile();
}
FileWriter writer = new FileWriter(file.getAbsoluteFile());
BufferedWriter bufferedWriter = new BufferedWriter(writer);
bufferedWriter.write(gsonGraphe);
bufferedWriter.close();
它给了我这个错误信息:
Exception in thread "main" java.io.IOException: Specified access path not found
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at com.neo4j.test.auteurPays.AuteurPays.main(AuteurPays.java:145)
当我尝试时它给了我同样的错误:File file = new File("/sources/Output.json");
或 File file = new File("sources\Output.json");
或 File file = new File("\sources\Output.json");
我做错了什么?我该如何解决?
谢谢!
PS : 我在 Windows 7.
下使用 Eclipse Luna
所有相对路径(不以 windows 上的驱动器号或 linux 上的斜线开头的路径)都是相对于当前工作目录的,应用程序将从该目录执行.通常(但这在很大程度上取决于环境,IDE 等),这是包含名为 "src"、"src/main/java" 或类似名称的目录的项目目录,它又是所有目录的根目录您的来源(例如 *.java 文件)。
如果您有一个名为 "com.project.test.sources" 的包,则在此根目录下必须有目录 "com/project/test/sources"。因此,如果您希望文件位于该包中,则必须使用类似的路径
src/com/project/test/sources
(取决于您的源根目录)。
但是,您可能不想将应用程序生成的文件放在应用程序本身的代码库中(因此不要放在 "src"-dir 之下),而是放在 "data" 等不同的目录中或类似的,所以你不要混淆源和动态生成的文件。
我在一个名为 com.project.test
的包中有一个 Java class,我想在一个名为 Output.json
的文件中写一些 JSON位于名为 com.project.test.sources
.
这是我试过的代码:
String gsonGraphe = gson.toJson(graphe); /* This is the JSON code to write */
File file = new File("sources/Output.json");
if (!file.exists()) {
file.createNewFile();
}
FileWriter writer = new FileWriter(file.getAbsoluteFile());
BufferedWriter bufferedWriter = new BufferedWriter(writer);
bufferedWriter.write(gsonGraphe);
bufferedWriter.close();
它给了我这个错误信息:
Exception in thread "main" java.io.IOException: Specified access path not found
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(Unknown Source)
at com.neo4j.test.auteurPays.AuteurPays.main(AuteurPays.java:145)
当我尝试时它给了我同样的错误:File file = new File("/sources/Output.json");
或 File file = new File("sources\Output.json");
或 File file = new File("\sources\Output.json");
我做错了什么?我该如何解决?
谢谢!
PS : 我在 Windows 7.
下使用 Eclipse Luna所有相对路径(不以 windows 上的驱动器号或 linux 上的斜线开头的路径)都是相对于当前工作目录的,应用程序将从该目录执行.通常(但这在很大程度上取决于环境,IDE 等),这是包含名为 "src"、"src/main/java" 或类似名称的目录的项目目录,它又是所有目录的根目录您的来源(例如 *.java 文件)。
如果您有一个名为 "com.project.test.sources" 的包,则在此根目录下必须有目录 "com/project/test/sources"。因此,如果您希望文件位于该包中,则必须使用类似的路径
src/com/project/test/sources
(取决于您的源根目录)。
但是,您可能不想将应用程序生成的文件放在应用程序本身的代码库中(因此不要放在 "src"-dir 之下),而是放在 "data" 等不同的目录中或类似的,所以你不要混淆源和动态生成的文件。