我不确定你应该如何从Java文件的系统输入中读入。从System.in读入 - Java
我希望能够调用java myProg < file
如果文件是我想读入一个字符串,并在主要方法给MYPROG什么。
有什么建议吗?
我不确定你应该如何从Java文件的系统输入中读入。从System.in读入 - Java
我希望能够调用java myProg < file
如果文件是我想读入一个字符串,并在主要方法给MYPROG什么。
有什么建议吗?
您可以使用System.in
从标准输入读取数据的InputStream。 IT就像从键盘输入一样。操作系统处理从文件到标准输入。 :-)
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());
}
}
不要忘记导入java.util.Scanner – shieldgenerator7 2017-08-15 16:48:18
另外,Scanner的文档:https://docs.oracle .com/javase/7/docs/api/java/util/Scanner.html – shieldgenerator7 2017-08-15 16:48:31
使用System.in,它是只服务于这一目的
好吧,你可以阅读System.in
本身,因为它是一个有效的InputStream
。或者,你也可以在BufferedReader
包装它:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
在BufferedReader中换行似乎是一个糟糕的主意,因为在Linux上(可能不是在每个配置中),它会导致程序在键入内容后无法获取数据在终端/ PuTTy中按“Enter”。为了让程序得到你输入的内容,你需要发送一些特殊字符来刷新流。 – 2015-01-31 19:23:24
你会从System.in
就像你会使用键盘输入,例如,InputStreamReader或Scanner阅读。
您可以拨打java myProg arg1 arg2 ...
:
public static void main (String args[]) {
BufferedReader in = new BufferedReader(new FileReader(args[0]));
}
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");
}
}
你可能寻找这样的事情。
FileInputStream in = new FileInputStream("inputFile.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
这是相当老的帖子。确保你仔细评论了很多人看到的东西,因此很可能很多专家已经检查过它。 – smttsp 2014-06-22 19:12:37
在Java中,控制台输入由从阅读System.in完成。为了获得附加到控制台基于字符 流,包System.in在的BufferedReader对象。 BufferedReader支持缓冲输入流。其最常用的构造 如下所示:
BufferedReader(Reader inputReader)
这里,inputReader是链接到的实例的BufferedReader正被 创建的流。 阅读器是一个抽象类。它的具体子类之一是InputStreamReader, 它将字节转换为字符。
为了获得链接到System.in一个InputStreamReader的对象,使用下面的构造:
InputStreamReader(InputStream inputStream)
由于系统。是指的对象InputStream,它可以用于inputStream。 全部放在一起,下面的代码行创建一个的BufferedReader连接 键盘:
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
这个语句的执行,BR是链接到一个基于字符的流通过System.in控制台 。
这是从书Java- The Complete Reference by Herbert Schildt
究竟是什么问题? 1)你不知道如何启动一个带有参数的java程序 2)你不知道如何在一个java程序中打开一个文件作为主要方法的参数。 或3) – Fortega 2011-03-30 15:02:05
@Fortega都不是那些。他想要输入一个文件来代替系统输入。 – corsiKa 2011-03-30 15:04:13
@Peter有时阅读6800万页有点太过分了! – corsiKa 2011-03-30 15:12:34