Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.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创建读取input.txt文件的路径?_Java - Fatal编程技术网

如何为java创建读取input.txt文件的路径?

如何为java创建读取input.txt文件的路径?,java,Java,我试图读取一个文件,但总是收到NullPointerException。有人知道可能是什么问题吗?我在java.io.Reader、java.io.BufferedReader、elte.hu.eltecom.file.FileManager.readGraph和elte.hu.eltecom.Main.Main上得到了NullPointerException 主要内容: 文件管理器: static public Manager readGraph(字符串s){ FileReader fr=n

我试图读取一个文件,但总是收到NullPointerException。有人知道可能是什么问题吗?我在java.io.Reader、java.io.BufferedReader、elte.hu.eltecom.file.FileManager.readGraph和elte.hu.eltecom.Main.Main上得到了NullPointerException

主要内容:
文件管理器:
static public Manager readGraph(字符串s){
FileReader fr=null;
试一试{
fr=新文件读取器(s+“/input.txt”);
}catch(filenotfounde异常){
}
BufferedReader br=null;
br=新的缓冲读取器(fr);
字符串sCurrentLine=null;
试一试{
sCurrentLine=br.readLine();
}捕获(IOE异常){
}
int x=整数.parseInt(sCurrentLine);
图=空;
图=初始图(x);
Manager=null;
经理=新经理(图);
内部温度=0;
布尔lineLeft=true;
试一试{
sCurrentLine=br.readLine();
}捕获(IOE异常){
}
用户用户[]=新用户[x];
while(左行){
如果(温度
看这里:

try {
        fr = new FileReader(s + "/input.txt");
    } catch (FileNotFoundException e) {

    }
您刚才写道:“读取文件‘随便什么’,如果找不到该文件,请忽略它。 此时,
fr
为空,您将其作为输入传递给
BufferedReader
,而不检查它是否为空

在实例化
BufferedReader
之前编写一个空检查,如果找不到该文件,则执行其他操作

以这种方式忽略异常是非常危险的,您的代码将不可靠


另一个建议是,
String s
的可读性非常差,请尝试给出一个更好的名称(
path
appDir
或任何可以让读者理解的名称,而无需返回阅读完整代码).

您在哪一行获得NPE?您是否尝试过使用调试器?尝试在
fr=new FileReader(s+“/input.txt”);
行的catch块打印堆栈跟踪。另外,在问题中粘贴异常。您尝试过调试器吗?
static public Manager readGraph(String s) {

    FileReader fr = null;
    try {
        fr = new FileReader(s + "/input.txt");
    } catch (FileNotFoundException e) {

    }
    BufferedReader br = null;
    br = new BufferedReader(fr);
    String sCurrentLine = null;

    try {
        sCurrentLine = br.readLine();
    } catch (IOException e) {

    }

    int x = Integer.parseInt(sCurrentLine);

    Graph graph = null;
    graph = initGraph(x);   
    Manager manager = null;
    manager = new Manager(graph);

    int temp = 0;
    boolean lineLeft = true;

    try {
        sCurrentLine = br.readLine();
    } catch (IOException e) {
    }

    User users[] = new User[x];

    while(lineLeft){
        if (temp < x){
            String line[] =  sCurrentLine.split(" ", 2);
            Language language = Language.valueOf(line[0]);
            User user;
            String name = line[1];
            if (line[1].contains("#")){
                name = name.substring(1);
                user= manager.createAdminUser(name, language);
            }
            else{
                user = manager.createUser(name, language);
            }
            users[temp] = user;
        }
        else {
            String line[] = sCurrentLine.split(" ");
            for (int i = 0; i < line.length ; i++){
                if (Boolean.valueOf(line[i])){
                    graph.linkNodes(users[temp-x], users[i]);
                }
            }
        }

        try {
        if ( (sCurrentLine = br.readLine()) == null)
            lineLeft = false;

        } catch (IOException e) {

        }
        temp++;
    }

    return manager;
}
}
try {
        fr = new FileReader(s + "/input.txt");
    } catch (FileNotFoundException e) {

    }