java中的文件问题
我创建了一个从文件中存储和检索数据的类,但是当我运行代码时,我遇到了如下错误java中的文件问题,java,Java,我创建了一个从文件中存储和检索数据的类,但是当我运行代码时,我遇到了如下错误 Error retrieving infojava.io.FileNotFoundException: computer-db.txt (The system cannot find the file specified) java.io.FileNotFoundException: computer-db.txt (The system cannot find the file specified) at java.
Error retrieving infojava.io.FileNotFoundException: computer-db.txt (The system cannot find the file specified)
java.io.FileNotFoundException: computer-db.txt (The system cannot find the file specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.util.Scanner.<init>(Unknown Source)
at testing.Driver.retrieve(Driver.java:63)
at testing.Driver.main(Driver.java:19)
java.lang.NullPointerException
at testing.Driver.retrieve(Driver.java:89)
at testing.Driver.main(Driver.java:19)
有人知道如何解决这个问题吗?
任何帮助都将不胜感激。
FileNotFoundException
告诉您该文件不存在。您正试图在当前目录中打开computer db.txt
。文件真的存在吗?FileNotFoundException
告诉您该文件不存在。您正试图在当前目录中打开computer db.txt
。文件真的存在吗?文件computer-db.txt应该位于执行程序的可执行jar文件所在的文件夹中。如果您不使用jar文件,而是直接从具有main方法的类文件执行,则同样适用。文件computer-db.txt应位于执行程序可执行jar文件的文件夹中。如果您不使用jar文件,而是直接从具有main方法的类文件执行,则同样适用。根据您的代码,在检索数据之前,您没有将数据存储到文件中,而且您没有很好地处理FileNotFound异常,要处理此异常,您可以执行以下操作
FileWriter有5个不同的构造函数,使用的构造函数假设文件已经存在,因为文件不存在,所以抛出错误
因此,您可以按如下方式修改代码:
File file = new File("computer-db.txt");
if(!file.exists)
{
file.createNewFile();
}
FileWriter fileWriter = new FileWriter(file);
其次,在异常处理中,最好提供适当的消息,而不仅仅是打印堆栈跟踪。根据您的代码,在检索数据之前,您没有将数据存储到文件中,而且您没有很好地处理FileNotFound异常,要处理此问题,您可以执行以下操作 FileWriter有5个不同的构造函数,使用的构造函数假设文件已经存在,因为文件不存在,所以抛出错误 因此,您可以按如下方式修改代码:
File file = new File("computer-db.txt");
if(!file.exists)
{
file.createNewFile();
}
FileWriter fileWriter = new FileWriter(file);
其次,在异常处理中,最好提供适当的消息,而不仅仅是打印堆栈跟踪。路径显然是错误的。如果将此应用程序打包在JAR或WAR中,则无法使用文件系统访问它;您应该使用类路径中的输入流。您的代码从不调用
store()
,那么您希望如何创建文件?还请注意,这样使用相对路径会使程序依赖于启动它的文件夹。您还需要使用flush并尝试使用资源来简化代码。路径显然是错误的。如果将此应用程序打包在JAR或WAR中,则无法使用文件系统访问它;您应该使用类路径中的输入流。您的代码从不调用store()
,那么您希望如何创建文件?另外请注意,使用相对路径会使程序依赖于启动它的文件夹。您还需要使用flush并尝试使用资源来简化代码。我认为java会自动生成文件。该项目存储在我的桌面上的一个文件夹中。Java对computer db.txt
一无所知。但是,您的程序有一个方法store()
,看起来它应该创建这个文件。我认为java会自动生成这个文件。该项目存储在我的桌面上的一个文件夹中。Java对computer db.txt
一无所知。但是,您的程序有一个方法store()
,看起来它应该正好创建这个文件。