当用户在Java中键入时,是否有一种从控制台读取单个字符的简单方法?可能吗?我尝试过这些方法但他们都在等待用户按下回车键:
char tmp = (char) System.in.read();
char tmp = (char) new InputStreamReader(System.in).read ();
char tmp = (char) System.console().reader().read(); // Java 6
Run Code Online (Sandbox Code Playgroud)
我开始认为System.in在按下enter之前不知道用户输入.
编辑:我实际上能够让这个工作和形成,在我的意见中,一个很好的例子.接受的答案就是我的例子,如果您需要帮助或有建议,请随时发表评论.
我是java的新手,刚刚被介绍给事件,处理程序和监听器.我在网上找到了3个很好的参考资料,但是,我仍然没有看到我如何实现这个来解决我的问题.(另外,这是在android上开发的.我怀疑这会改变这个例子,但我想我会告诉你)
这是我需要的,使用任意名称和示例,而不是在这里填写我的数百行代码:
以下是我的类及其用法:
MainUI - 这将创建UI
Connect - 此类执行与套接字的连接并开始接收数据
DataRobot - 此类对接收的数据执行计算并决定如何处理它
DataBuilder - 这class从数据机器人收集数据,一旦达到一定数量,它就会将该块发送到远程数据库
DataSender - 该类发送数据库发送给它的数据
我用线程来实现这个... =(
我知道有人建议我使用事件.他给了我一个很好的解释,但是,它在30分钟内,我看不出如何实现它而没有看到一些更好的例子(他也是在C#背景下发言.我想知道在那里有一些java经验的人是否可以使用我上面的东西并告诉我我需要做什么.
以下是我计划出来的事件:
dataReceived - 此事件发生在connect中,当此事件触发时,当connect接收数据时,此事件将触发,它将数据发送到数据机器人handler()函数.
dataAnalyzed - 这个事件发生在datarobot中,当datarobot完成处理给它的数据时会触发此事件,当此事件触发时它会将数据发送到databuilder
dataBuilder - 此事件发生在databuilder中,当databuilder收到此事件时会触发此事件一定数量并准备发送数据,当此事件触发时,它将数据发送到数据库.
我在这里寻找一个例子或至少讨论应该做些什么.我找到的一个例子是"happyfaceobject"的例子,它非常好.但是,我仍然无法在我的设计中实现它,因为我对java和事件非常新.请尽可能帮助我,我们将不胜感激.这个例子也可以帮助整个社区,因为缺少很棒的java事件示例.
在此先感谢,如果您需要更多信息,请告诉我们.