从System.in读入 – Java
我不确定你应该如何从Java文件的系统input中读入。
我想能够调用java myProg < file
文件是我想要作为一个string读取,并在主要方法中给予myProg。
有什么build议么?
您可以使用System.in
从标准input读取。 IT就像从键盘input一样。 操作系统处理从文件到标准input。 🙂
class myProg { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("Printing the file passed in:"); while(sc.hasNextLine()) System.out.println(sc.nextLine()); } }
那么,你可以读System.in
本身,因为它是一个有效的InputStream
。 或者你也可以把它包装在一个BufferedReader
:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
使用System.in,它是一个InputStream,它只是用于这个目的
您可以像使用InputStreamReader或Scanner的键盘input一样从System.in
读取数据。
在Java中,控制台input是通过从System.in中读取完成的。 要获取连接到控制台的基于字符的stream,请将System.in包装在BufferedReader对象中。 BufferedReader支持缓冲inputstream。 其最常用的构造函数如下所示:
BufferedReader(Reader inputReader)
这里,inputReader是链接到正在创build的BufferedReader的实例的stream。 读者是一个抽象的类。 其中一个具体的子类是InputStreamReader ,它将字节转换为字符。
要获取链接到System.in的InputStreamReader对象,请使用以下构造函数:
InputStreamReader(InputStream inputStream)
由于System.in引用InputStreamtypes的对象,因此可用于inputStream。 综合起来,下面这行代码创build一个连接到键盘的BufferedReader :
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
执行此语句后,br是一个基于字符的stream,通过System.in链接到控制台。
这是从Java- The Complete Reference by Herbert Schildt
的“ Java- The Complete Reference by Herbert Schildt
”一书中获得Java- The Complete Reference by Herbert Schildt
你可以调用java myProg arg1 arg2 ...
:
public static void main (String args[]) { BufferedReader in = new BufferedReader(new FileReader(args[0])); }
你可能正在寻找这样的东西。
FileInputStream in = new FileInputStream("inputFile.txt"); BufferedReader br = new BufferedReader(new InputStreamReader(in));
class myFileReaderThatStarts with arguments { class MissingArgumentException extends Exception{ MissingArgumentException(String s) { super(s); } } public static void main(String[] args) throws MissingArgumentException { //You can test args array for value if(args.length>0) { // do something with args[0] } else { // default in a path // or throw new MissingArgumentException("You need to start this program with a path"); } }