我正在开发一种工具,该工具将由用户接收XML文件。该工具将执行一些操作并创建一个新的XML文件,然后用户可以随意使用它做任何事情。
我想将jar放在一个文件夹(XMLTOOL)和用户的XML文件(input.xml)中。层次结构如下:
XMLTOOL
|__tool.jar
|__input.xml
在运行时,我希望访问文件input.xml(或用户放在此文件夹中的任何其他XML文件(例如,通过命令行参数:java tool newInput.xml
)
目前我正在使用:
ClassName.class.getResource(inFile);
ClassName
是我班级的名称。但是,只有当input.xml
与Eclipse中的源文件位于同一个包中时,这才有效。
那么在Java项目中构建资源文件的标准约定是什么,请记住,从JAR存档运行时应该可以访问这些资源。
答案 0 :(得分:1)
在本地文件系统中处理文件的最简单方法是通过java.io.File API:
int[][] list = {{2,3,5,10,13}, {12,23,9,8}, {34,11,14,15,67,28,5}, {7,23,67,27,30,33}};
HashSet<Integer> seenItems = new HashSet<>();
for(int i = 0; i < list.length; i++) {
int[] l = list[i];
for(int j = 0; j < l.length; j++) {
int itemToCheck = l[j];
if (seenItems.contains(itemToCheck)) {
System.out.println("We've already seen " + itemToCheck);
return;
} else {
seenItems.add(itemToCheck);
}
}
}
String path=...
File file=new File(path);
// To read the file:
InputStream input=new FileInputStream(file);
// To write to the file:
OutputStream output=new FileOutputStream(file);
可以是当前目录的绝对值或相对值。
从Eclipse执行应用程序时,当前工作目录是启动的参数:您可以在path
窗口中设置arguments
选项卡。默认情况下,它是项目的目录,但您可以设置自己的自定义目录。
答案 1 :(得分:0)
您也可以创建自己的命名空间,例如(D:\ .. \ Project \ Input \ .xml文件),您可以在其中放置xml文件并在运行时获取以避免混淆。然后,您可以使用像 getAbsolutePath()这样的方法来获取xml文件的路径并在任何你想要的地方运行,尤其是当你从JAR文件运行时。
您还可以使用类似Maven工具,以结构化和传统的方式管理您的项目和目录。