无法使用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));