【问题标题】:Getting a file from a file name passed in the command line (String[] args)从命令行中传递的文件名获取文件(String[] args)
【发布时间】:2016-09-22 05:28:51
【问题描述】:

所以我在读取通过命令行传递到我的程序中的文件时遇到问题。所以,我的程序叫做 printFile。我执行以下操作:

java printFile text1.txt

在我的主要,我有:

try{
 Scanner scan=new Scanner(args[0]);
  while(scan.hasNextLine())
  {
  System.out.println(scan.nextLine());
  }
 }
 catch(IOException e)
 {
 e.printStackTrace();
 }

如何正确获取命令行传入的文件?

【问题讨论】:

  • 您通过args[0] 获取文件名。但是您应该阅读Javadoc 来了解Scanner 构造函数的作用:它标记字符串本身;它不会将其视为文件名。
  • 那么我如何读取 args[0] 中的文件中的文本?如,我将如何仅从 args[0] 获取文件路径?但我明白你在说什么。
  • 你可以创建一个FileInputStream
  • 是否可以像这样创建一个新文件:'File nFile=new File(args[0])' 然后创建一个新的扫描仪对象,例如:'Scanner scan=new Scanner(nFile.getPath ())' ?还是只是:'scan=new Scanner(args[0].getPath())'?
  • 何不试试呢? :)

标签: java command line


【解决方案1】:

Scanner(String) 从指定的字符串创建扫描器。但是你想扫描一个文件的内容,所以你想使用Scanner(File)构造函数。

从此改变:

Scanner scan=new Scanner(args[0]);

到这里:

 Scanner scan = new Scanner(new File(args[0]));

【讨论】:

  • 但这不就是新建一个同名文件,因为args[0]是字符串,不是文件吗?没有读取文件参数?
  • File(String) 创建一个 Java File 实例。这与创建新文件不同。它不会在文件系统中创建新文件。一点也不。它在指定路径的文件系统中创建文件的表示。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 2019-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-10-25
相关资源
最近更新 更多