所以我正在开发这个游戏,我将高分存储在一个文本文件中。我正在关注有关如何读取和写入文件的newboston教程。现在我正在测试读取类是否有效并且无法正常工作。它说找不到文件的时候我把文字放得很像文件就在我的包里,所以我不必说道。这是我的游戏中使用读写类的方法代码:
private int getHighScore(int change, int newScore) {
if (change==1) {
readFile r=new readFile();
r.openFile();
String fileScore=r.readtext();
r.closeFile();
int score=Integer.parseInt(fileScore);
return score;
}
else {
writeToFile w=new writeToFile();
w.openFile();
w.addRecords(newScore);
w.closeFile();
return newScore;
}
}
以下是阅读课程:
import java.io.*;
import java.util.*;
public class readFile {
private Scanner read;
public void openFile() {
try {
read=new Scanner(new File("highScore.txt"));
}
catch(Exception e){
System.out.println("Could not find file.");
}
}
public String readtext() {
String score=read.next();
return score;
}
public void closeFile() {
read.close();
}
}
此处还有写文件。我担心这个类可能不起作用,因为看起来它可能会创建一个新文件并写入那个新文件,当我只想写入一个我已经称为“highScore.txt”的现有文件时无论如何这里是写的类:
import java.util.*;
public class writeToFile {
private Formatter x;
public void openFile() {
try {
x=new Formatter("highScore.txt");
}
catch(Exception e) {
System.out.println("Can not open that file.");
}
}
public void addRecords(int newScore) {
String score=""+newScore;
x.format("%s", score);
}
public void closeFile() {
x.close();
}
}
所以我想知道为什么它不起作用并提前感谢。
答案 0 :(得分:0)
如果您的文件存在于存在ReadFile和WriteFile的相同位置。然后你可以使用下面的代码。
URL url = getClass().getResource("highScore.txt");
Scanner read=new Scanner(new File(url.getPath()));
答案 1 :(得分:0)
好的,我解决了。问题是错误的位置,我仍然没有给出一个路径。所以基本上我看了这个帖子:The system cannot find the file specified in java
线程的一部分列出了目录中的文件。当我这样做时,我注意到它提到的所有内容都在项目文件夹中。我将文件从src文件夹移动到项目文件夹,它工作正常。因此,如果您遇到一个问题,您知道您拼写了正确的文件名但是文件不存在,请确保您的文件位于项目文件夹中而不是src文件夹中。