【发布时间】:2014-12-13 06:55:36
【问题描述】:
我创建了一个简单的 java 程序,我在其中创建了一个文本文件并读取其中写入的数据。问题是我不想硬编码文件的路径,因为在开发应用程序后,我为我的程序创建了一个安装程序包,允许用户在他们的系统上安装它。现在的问题是最终用户如何将文件安装在任何地方(即在他们的 C、D 或 E 驱动器中),在这些情况下,我得到了 FileNotFoundException 异常。
我的代码 - 这是我用来创建一些文本并将其写入文本文件的代码。
FileWriter file = new FileWriter("E:\\TextFile.txt",true);
BufferedWriter writer = new BufferedWriter(file);
writer.write(input);
write.newLine();
write.close();
这是我用来从文本文件中读取文本的代码。
FileReader read = new FileReader("E:\\TextFile.txt");
BufferedReader data = new BufferedReader(read);
我有另一个文件,我为其硬编码了文件的路径。
System.setProperty("webdriver.chrome.driver","D:\\New Folder\\chromedriver.exe");
正如您在我的所有代码中看到的,我对路径(“E:\TextFile.txt”、“E:\TextFile.txt”和“D:\New Folder\chromedriver.exe”)进行了硬编码。 java中有没有办法删除它们? 我经历了类似的问题,但无法弄清楚如何检测文件的位置。
【问题讨论】:
-
你只是编辑源代码文件 - 你是什么意思删除它们?
-
您要从编译后的代码中删除它们?或者问如何编辑源来纠正它?你不能真正从编译的代码中删除引用......你需要在源代码中修复它并重新编译 + 打包你的应用程序
-
@Mark 例如,代码包含路径为“E:\\TextFile.txt”。如您所见,该文件位于 E 盘中,但当用户安装该文件时,他可能会将其安装在 D 盘中。在这种情况下,程序会抛出 FileNotFoundException 异常。所以我想找到一种方法,我可以告诉应用程序用户已经在这个位置安装了应用程序,你可以从那里读取它。
-
从外部文件而不是从代码中读取
标签: java file path filereader filewriter