Java 读取cmd中传递的文件

Java 读取cmd中传递的文件,java,cmd,Java,Cmd,我有一个问题,可能很容易,但我无法解决。我正在编写名为task1的简单java程序来读取文件并计算一些值。我在cmd中运行此程序,如下所示: cmd:JavaTask1计算 “task1”后面的单词“calculate”是一个参数,它启动我的方法来计算一些值。但是我想在一个名为values.txt的文件中计算一些值。我的问题是,我不知道如何将代码写入该读取文件。此文件在cmd中作为参数传递,如下所示: cmd:java task1计算

我有一个问题,可能很容易,但我无法解决。我正在编写名为task1的简单java程序来读取文件并计算一些值。我在cmd中运行此程序,如下所示:

cmd:JavaTask1计算

“task1”后面的单词“calculate”是一个参数,它启动我的方法来计算一些值。但是我想在一个名为values.txt的文件中计算一些值。我的问题是,我不知道如何将代码写入该读取文件。此文件在cmd中作为参数传递,如下所示:

cmd:java task1计算 希望你能理解我的问题。如果你能告诉我如何在我的文件中打印这些值,那就太棒了

        if(args.length == 0)
        {
            System.out.println("Insert some arguments");
        }
        else if(args[0].equals("calculate"))
        {
            //here i would like to read my file (values.txt) 
        }

我感谢你的帮助,我为我的英语不好感到抱歉

您应该使用缓冲读取器。 当你这样做的时候

cmd: java task1 calculate < values.txt
这样,您可以使用BufferedReader读取一行

有关更多信息,请咨询

PS:也可以直接从磁盘读取文件,无需通过管道将其传输到程序

你是这样做的:

BufferedReader bufferedReader = new BufferedReader(new FileReader(filename));
你可以试试。这将读取一个文本文件并将每一行存储在 列表集合:

//Path valuesPath = Paths.get("VALUES_DIR", "values.txt");
Path valuesPath = Paths.get("./" + args[0]);

try {
  List<String> lines = Files.readAllLines(valuesPath, Charset.defaultCharset()));

  for (String line : lines) {     //print lines (or do whatever you need)
    System.out.println(line);
  }
} catch (IOException e) {
   e.printStackTrace();
}
编辑:

要在中以标准方式读取管道文件,请执行以下操作:

BufferedReader in = null;
try {
    in = new BufferedReader(new InputStreamReader(System.in));
    String line;
    while ((line = in.readLine()) != null) {  //print lines (or do whatever you need)
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
} 
将您的任务称为:

java task1 calculate < VALUES_PATH\values.txt
java task1计算
其中VALUES\u PATH是文件所在的完整路径


注意当您使用
时,我得到一个错误:系统找不到指定的文件。我的vales.txt文件与task1.java文件位于同一目录中。所以我假设这不是问题,或者是吗?在代码示例中,
VALUES\u DIR
是VALUES.txt文件所在的目录。您还可以只使用一个参数调用
path.get()
,该参数的完整路径为values.txt。你不需要使用
是的,我需要使用
我明白了,但我得到了一个错误:无法访问jarfile。对不起,我是新来的,所以我不能马上弄明白。但我仍然不能像你们现在这样调用java程序,但我必须阅读我在问题中发布的内容。我终于明白了,谢谢!第二个解决方案很有用。好的,我将使用第一个,因为这就是我需要的。但我得到一个错误:系统找不到指定的文件。我的文件与我的程序task1.java位于同一目录中。第二种方法会发生此错误。你能粘贴整个错误吗?@Rok你是从java还是从操作系统中得到这个错误?当我在cmd中运行这个错误时(系统找不到指定的文件)。我得到的唯一东西。我不明白为什么它找不到这个文件,正如JosEdu所说,你应该试着直接阅读它们。可以使用参数指定文件。此外,JosEdu解决方案更适合于此。
BufferedReader in = null;
try {
    in = new BufferedReader(new InputStreamReader(System.in));
    String line;
    while ((line = in.readLine()) != null) {  //print lines (or do whatever you need)
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
} 
java task1 calculate < VALUES_PATH\values.txt