无法使用FileReader和BufferedReader读取Java中的文本文件,可能的原因是什么?
在这里,通过无法使用FileReader和BufferedReader读取Java中的文本文件,可能的原因是什么?,java,file,static-methods,filereader,Java,File,Static Methods,Filereader,在这里,通过start()方法,我使用文本文件调用了loadMap(filename)方法。但是我不知道为什么虽然调用了loadMap(),但是文件读取器和BufferedReader不工作。下面是两个文件读者的声明 System.out.print(“内部loadMap()”)未在控制台中打印,文本文件未读取。这里到底发生了什么问题?请帮助别人 import java.io.BufferedReader; import java.io.FileReader; import java.io.IO
start()
方法,我使用文本文件调用了loadMap(filename)
方法。但是我不知道为什么虽然调用了loadMap(),但是文件读取器和BufferedReader
不工作。下面是两个文件读者的声明
System.out.print(“内部loadMap()”)代码>未在控制台中打印,文本文件未读取。这里到底发生了什么问题?请帮助别人
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class DemoClass {
public static void main(String[] args) {
start();
}
public static void start() {
try {
System.out.print("Pobon File Inside");
loadMap("data\\map1.txt");
} catch (Exception e) {
// TODO: handle exception
}
}
private static void loadMap(String filename) throws IOException {
ArrayList lines = new ArrayList();
FileReader fReader = new FileReader(filename);
BufferedReader reader = new BufferedReader(fReader);
System.out.print("INside loadMap()");
while (true) {
String line = reader.readLine();
if (line == null) {
reader.close();
break;
}
if (!line.startsWith("!")) {
lines.add(line);
}
}
System.out.print("INside loadMap()");
}
}
如果从未调用System.out.print(“INside loadMap()”)
,则在创建文件读取器时必须引发IOException。
换句话说,调用loadMap()
(data\map1.txt)时作为参数输入的文件不存在。您应该考虑以不同的方式检索文件,例如将其放在源文件夹中,然后调用很好,很有可能在尝试读取文件时在某个地方找到异常。但这是异常在这里被吞没:尝试{…}捕获(异常e){//TODO:handleexception}
。将e.printStacktrace()
放入catch块。然后告诉我们,控制台上写入了什么异常。很可能它无法打开文件,并抛出一个ExceptionID。如果您试图提供文件的绝对路径,它将无法获取文件名。你能调试并确认吗?我给出了e.printStacktrace()
,它在java.io.FileInputStream.open(本机方法)java.io.FileInputStream.(未知源)java.io.FileInputStream.(未知源)java.io.FileInputStream.(未知源)java.io.FileReader显示-->Insidejava.io.FileNotFoundException:data\map1.txt(系统找不到指定的路径)。DemoClass.main(DemoClass.java:8)处的DemoClass.loadMap(DemoClass.java:25)处的DemoClass.start(DemoClass.java:14)处的DemoClass.loadMap(未知源代码)
此异常@Seelenvirtuose@13th Ghosts,但FileReader
构造函数不支持getClass().getResource()
URL。那怎么可能呢,你能解释一下吗?@nerdizledon不要使用文件阅读器。
使用FileInputStream
,如所提供的链接所示。那么我如何使用FileInputStream
将文件读取为文本的String
?bcz我需要将它们存储在ArrayList
@nerdizlecreate中putStreamReader
将FileInputStream
传递给构造函数,然后将实例化的InputStreamReader
传递给BufferedReader的构造函数,如下所示:BufferedReader in=new BufferedReader(new InputStreamReader(mFileInputStream));