Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.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 无法接受文件名作为读取(或写入)文件的参数_Java_File Io - Fatal编程技术网

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)`