Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中的文件问题_Java - Fatal编程技术网

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()
,看起来它应该正好创建这个文件。