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