Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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_Console - Fatal编程技术网

用户输入文件控制台/命令行-Java

用户输入文件控制台/命令行-Java,java,file-io,console,Java,File Io,Console,web上用Java输入文件的大多数示例都涉及固定路径: File File=new文件(“myfile.txt”) 控制台中的用户输入文件怎么样?假设我希望用户输入一个文件: System.out.println(“输入要读取的文件:”) 我有哪些选项(使用尽可能少的代码)来读取用户指定的文件以进行处理。一旦我有了这个文件,我就可以转换成字符串,等等。。。我认为这与BufferedReader、Scanner、FileInputStream、DataInputStream等有关。。。我只是不知道

web上用Java输入文件的大多数示例都涉及固定路径:

File File=new文件(“myfile.txt”)

控制台中的用户输入文件怎么样?假设我希望用户输入一个文件:

System.out.println(“输入要读取的文件:”)

我有哪些选项(使用尽可能少的代码)来读取用户指定的文件以进行处理。一旦我有了这个文件,我就可以转换成字符串,等等。。。我认为这与BufferedReader、Scanner、FileInputStream、DataInputStream等有关。。。我只是不知道如何结合使用这些方法来获得最有效的方法

我是一个初学者,所以我可能会错过一些简单的东西。但我已经在这上面乱搞了一段时间了,但都没有用


提前感谢。

使用java.io.BufferedReader

String readLine = "";
try {
      BufferedReader br = new BufferedReader(new FileReader( <the filename> ));
      while ((readLine = br.readLine()) != null) { 
        System.out.println(readLine);
      } // end while 
    } // end try
    catch (IOException e) {
      System.err.println("Error Happened: " + e);
    }
String readLine=”“;
试一试{
BufferedReader br=新的BufferedReader(新的文件阅读器());
而((readLine=br.readLine())!=null){
System.out.println(读线);
}//结束时
}//结束尝试
捕获(IOE异常){
System.err.println(“发生错误:+e”);
}
并用数据处理填充while循环

问候,,
要让用户输入文件名,有几种可能:

作为命令行参数

public static void main(String[] args) {
  if (0 < args.length) {
    String filename = args[0];
    File file = new File(filename);
  }
}

我认为在这种情况下不需要刷新:@HunterS:另一个问题提到了一些不需要刷新的情况。上面的代码不是其中之一,因此我决定最好是明确的。根据Javadoc,在这种情况下是必要的,因为字符串不包含
\n
字符。
Scanner scanner = new Scanner(System.in);
System.out.print("Enter a file name: ");
System.out.flush();
String filename = scanner.nextLine();
File file = new File(filename);