【发布时间】:2014-06-23 16:42:38
【问题描述】:
我正在开发一款类似于 Break Out 的基本游戏,我计划使用文本文件来存储关卡数据,以了解当关卡渲染到屏幕上时各种对象应位于的位置。代码如下:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class LevelData {
public LevelData(){
readFile();
}
public void readFile(){
try{
BufferedReader in = new BufferedReader(new FileReader("Levels"));
String str;
while((str = in.readLine()) != null){
process(str);
in.close();
}
}catch (IOException e){
System.out.println("File Does Not Exist");
}
}
private void process(String str){
System.out.println(str);
}
}
以下代码基于先前的研究,应访问与 Java 类位于同一包中的文件“Levels”,但如果程序无法访问该文件,则应打印“文件不存在”到控制台。我创建了一个名为“Levels”的文件,它与 Java 类位于同一个包中,但每当我运行这个类时,它都无法正确读取文件并捕获异常。
有没有人知道为什么它不能访问正确的文件?我已经查看了其他各种线程,但到目前为止还没有发现任何可以帮助我的东西。
提前致谢
【问题讨论】:
-
你在使用 IDE 吗?
-
它是否在文件夹中,我发现有时您会被带回项目文件夹并且必须导航回来。 "/src/Levels.txt"
-
您也可以让您的程序创建文件,然后查看它的位置以了解您的程序正在使用哪个工作目录。
-
如果文件在您的源包中,那么您应该将其作为类资源加载。如果该文件在您的项目目录中(在您的最终 jar 文件旁边),那么您应该像在问题中那样将其作为文件加载。
标签: java file bufferedreader filereader