编辑:我已经找到了解决此问题的方法,它与MS90评论非常相似。由于我的工作目录是“ ATM项目”,因此java将只能注意到该目录中我给它的相对路径。将我的路径名更改为“ group_0331 \ phase1 \ deposits.txt”可以解决问题,因为“ group_0331”在我的当前目录中。现在,在第1阶段的所需位置创建了文件。
我需要能够将此文件写入(和读取)与具有createAccount方法的java文件相同的目录。所以不是工作目录。另外,我不能对路径名进行硬编码,因为此文件将不会总是从同一台计算机上运行。我怎样才能做到这一点?
void createAccount(String name, String accountType){
try {
accounts = new File("accounts.txt");
Writer writer = new BufferedWriter(new FileWriter(accounts, true));
writer.write(String.format("%s \naccounts: %s", name, accounts));
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:-2)
您的要求是不可能的:程序运行时'java'文件不存在。 java将Java文件编译为类文件,然后运行这些文件。
如果要从与类文件相同的位置加载account.txt,请使用以下方法:
public class ExampleClass {
// catching an exception and calling printStackTrace is bad code. Do not do this.
void example() throws IOException {
try (InputStream in = ClassYouAreIn.class.getResourceAsStream("accounts.txt")) {
// you can read it here.
}
}
}
您无法写信;类文件通常位于您无法写入的位置(例如jar文件)。
“我希望在与班级文件相同的位置写入文件”这一概念是一个非常糟糕的主意。如果必须写入文件,请选择一个合理的位置以使该文件存在,并使用该位置。一些例子: