gpt4 book ai didi

java - 读取与 JAR 程序位于同一文件夹中的文本文件时出现问题

转载 作者:太空宇宙 更新时间:2023-11-04 13:30:11 24 4
gpt4 key购买 nike

我在与 .jar 程序相同的位置有一个文本文件:

主文件夹:

|_ myJar.jar

|_ myText.txt

当我运行 .jar 文件时,我希望它读取 myText.txt 的内容,但是将路径设置为 String fileName = "./Paths.txt"; 它仍然不读取该文件。我相信它正在尝试从 jar 内读取 Paths.txt 文件。

我尝试了其他解决方案,似乎没有一个解决方案告诉程序从 jar 文件外部读取 Paths.txt 文件,因此任何帮助将不胜感激。

代码:

public static void readFile() { 

String fileName = "./Paths.txt";
BufferedReader br;
String line;
//Attempts to read fileName
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)));
try {
// Starts reading the file and adding values to linked hashmap
while ((line = br.readLine()) != null) {
String[] lineSplit1 = line.split("#");
String lineKey = lineSplit1[0];
String lineValue = lineSplit1[1];
hm.put(lineKey, lineValue);
}
} catch(Exception e3) {
errorMessage("Error when trying to read the file and add "
+ "the values to a hashmap");
}
//Attempts to close fileName
try {
br.close();
} catch(IOException e1 ) {
System.out.println("Messed up while trying to close buffered reader");
System.out.println(e1);
}
} catch (FileNotFoundException e1) {
errorMessage("The file " + fileName + " does not exist"
+ "\nI have created the file for you.");
try {
PrintWriter writer = new PrintWriter(fileName, "UTF-8");
writer.println("");
writer.close();
} catch(Exception e2) {
errorMessage("Error while trying to create " + fileName);
}
}
}

最佳答案

我想,您可以获得文件的完整路径,只需要通过您的类初始化它,该类应该打包在 myJar.jar 中。只需将示例中的 YourClass 更改为 jar 中的某个真实的类即可。

public static void readFile() { 
File file = new File(YourClass.class.getProtectionDomain().getCodeSource().getLocation().getFile());
String fileName = file.getParent() + File.separator + "Paths.txt";
...

关于java - 读取与 JAR 程序位于同一文件夹中的文本文件时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32280528/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com