| 项目搜索 |
| |
|
代码片段库:
查看代码片段
浏览
| 提交新的代码片段
| 创建代码包
readfromcmd
|
类型:
Full Script |
类别:
Other
|
许可证:
GNU General Public License |
语言:
Java
|
描述:
02
Java的新手经常问,“我怎样才能从命令行读取一个整数呢?”他们遇到的问题是双重性的。第一个问题是Java 把命令行当成是字符输入的地方,比方“1”而不是1.第二个方面是从命令行读取数据需要一个非常陡峭的学习曲线。幸运的是,使用一个简单的Listener系统,学习曲线的坡度被降低了而程序员可以关注于真正的问题,也就是如何把输入的字符串转换成数字。
|
该代码片段的版本系列:
片段ID |
下载版本 |
提交时间 |
提交人 |
删除 |
4556 | 0.1 | 2002-04-23 12:11 | admin | |
点击"下载版本"来下载该代码片段.
最新版本的代码片段: 0.1
package com.generationjava.io;
/**
* 监听一个命令行而且在命令被输入的
*时候收到通知。从cmdEntered 返回false值将
*将阻止被监听的命令行。
*/
public interface CommandLineListener {
public boolean cmdEntered(String cmd);
}
package com.generationjava.io;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.Reader;
import java.io.InputStreamReader;
import java.io.InputStream;
/**
* 从命令行读取命令
* 这使得处理用户命令的程序可以
*与读取命令的部分独立开来
*/
public class CommandLine {
private BufferedReader br = null;
private CommandLineListener myListener = null;
public CommandLine(InputStream is, CommandLineListener cll) {
this( new InputStreamReader(is), cll);
}
public CommandLine(Reader rdr, CommandLineListener cll) {
br = new BufferedReader(rdr);
myListener = cll;
}
public void startReading() throws IOException {
String cmd = null;
boolean moreCommands = true;
while(moreCommands) {
cmd = br.readLine();
moreCommands = myListener.cmdEntered(cmd);
}
}
}
使用这个系统是简单的。只需要实现Listener类然后开始一个命令行对象。例如:
public class TestCommandLine implements CommandLineListener {
static public void main(String[] args) {
CommandLineListener cll = new TestCommandLine();
CommandLine cl = new CommandLine( System.in, cll );
cl.startReading();
}
public boolean cmdEntered(String cmd) {
System.out.println("CMD["+cmd+"] was entered.");
return true;
}
}
如果您修改了一个代码片段并且觉得很应该让别人共享,您可以把这作为这个代码片段的最新版本提交上来. |
|