我正在使用Java上的文本文件。在Ubuntu 10上 但是,我遇到路径目录的问题。
示例:
saveFile("textFile.txt","abc");
这个抽象函数基本上将“abc”放在“textFile.txt”上。
我编译此文件,并创建一个jar文件(使用NetBeans)
当我运行应用程序并致电saveFile("textFile.txt","abc")
时,textFile.txt
会保存在\ home上。我不想要这个。我希望textFile.txt
转到jar文件中的pathDir
。
如何以同样的方式写入此文件?
答案 0 :(得分:1)
从JAR文件中读取资源时,您无法使用File
API。相反,您使用Class.getResourceAsStream()
,如下所示:
reader = new InputStreamReader(MyClass.class.getResourceAsStream(
"/apathdir/textFile.txt"), "UTF-8");
还要注意如何指定编码。 FileReader
不允许这样做,这就是为什么通常应该避免的原因。
答案 1 :(得分:0)
我想知道,如果fileName = “textFile.txt”,路径是什么dir 这个档案?
如果您只使用裸文件名(不提供目录),JVM将在JVM进程的当前目录中查找该文件;这通常是您运行JVM(java可执行文件)的目录。
我该如何设置 /apathdir/textFile.txt? apathdir是一个 jar文件中的目录。 我试过:fileName =“/ apathdir / textFile.txt”,但不起作用。
如果要从JAR文件中加载文件,则无法使用FileReader
加载它。您需要使用ClassLoader.getSystemResourceAsStream()
(或Class.getResourceAsStream
)。参见例如这篇文章的解释是: