我目前有一个程序的实现,我使用 Scanner 类读取输入。整数乘整数。 我通过命令行通过管道传输输入文件来完成此操作。
java program < input.txt
我需要避免通过在命令行上使用参数来在程序中打开文件来通过管道传输输入。
java program --file=input.txt
或者类似的东西。 我知道我可以解析命令行参数,提取文本“input.txt”,然后使用“BufferedReader”等类或类似的类来读取文件。
我只是好奇是否可以使用输入文件(无管道)并仍然使用 Scanner 类。 这意味着我不必更改 nextInt() 和其他此类调用。
最佳答案
由于参数只是不被评估而是传递到您的 main(String[] args)
方法,中间没有任何工作,您唯一的选择是解析参数,提取文件名 input .txt
并将其作为普通文件流打开。
我不明白它应该如何推断文件必须作为管道打开和传递,而不是管道。您可以轻松地将 Scanner
与 File
一起使用> 争论而不关心任何事情..
public Scanner(File source) throws FileNotFoundException
Constructs a new Scanner that produces values scanned from the specified file. Bytes from the file are converted into characters using the underlying platform's default charset.
关于Java:使用 Scanner 类从文件中读取输入而无需管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3867624/