Java 无法接受文件名作为读取(或写入)文件的参数
以下程序用于读取文件:-Java 无法接受文件名作为读取(或写入)文件的参数,java,file-io,Java,File Io,以下程序用于读取文件:- import java.util.*; import java.io.*; import java.lang.*; public class file_read { private Scanner input = new Scanner(System.in); private Scanner fileinput; public void open() // [1] { try { String filename = inp
import java.util.*;
import java.io.*;
import java.lang.*;
public class file_read
{
private Scanner input = new Scanner(System.in);
private Scanner fileinput;
public void open() // [1]
{
try
{
String filename = input.next();
fileinput = new Scanner(new File(filename+".txt")); // [2]
}
catch(Exception e)
{
System.out.println("opening error.");
}
}
public void read()
{
// some task to read the file
}
public void closeFile()
{
// closing the file
}
}
问题在于[1],我认为[2]的说法是造成问题的原因。如果我用实际的文件名替换
filename+“.txt”
,一切都会正常运行。我无法查明原因。请帮助。您有例外吗?什么?请将catch(Exception e){System.out.println(“打开错误”);}
更改为catch(Exception e){e.printStackTrace();}
您当前的错误消息不是很有帮助。@SotiriosDelimanolis只打印了我作为异常给出的消息。除了@elliotfrisch所说的以外,只需在调试器中运行它,并在标记为[2]
的行上设置断点。。。查看filename
是什么。如果它在指定文字文件名时起作用,那么显然filename
并没有以您认为的方式读取。只需查看值并计算出来。@ElliottFrisch消息如下:-线程“main”java.lang.NullPointerException中的异常
`at file_reader.open(file_reader.java:13)`at exp.main(exp.java:9)`