例如,在java中,要从控制台读取输入,您可以编写如下内容:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class ReadConsoleSystem {
public static void main(String[] args) {
System.out.println("Enter something here : ");
try{
BufferedReader bufferRead = new BufferedReader(new InputStreamReader(System.in));
String s = bufferRead.readLine();
System.out.println(s);
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
所以在行String s = bufferRead.readLine()
中,代码只是等待输入进入然后进入下一步,但是如果你想查看连续的字符串流,试图解析出例如,阅读一系列Twitter状态,只保存那些带有“奥巴马”字样的东西?
我不明白代码如何逐行执行,同时处理来自流的输入,然后突然检测何时输入并保存它。
答案 0 :(得分:1)
bufferRead.readLine();在用户按下返回键之前,不会返回到调用代码。
答案 1 :(得分:0)
该代码写入只设置为从系统的输入(即控制台)读取一行输入。它的设置使得当你执行readLine时,它将从输入中读取一行。你必须输入一些东西(“Hello there”)然后按Enter键,然后它将把它放入String中。如果你想解析东西,可以在词语
之后手动完成if(s.contains("Obama")) {
//blah
}
答案 2 :(得分:0)
控制台是行缓冲的。这意味着整个行都是Java进程的一次,所以它不会看到你写字符或者回空间来删除它们等等。
我怀疑你不需要知道它是如何做到的。也许您可以描述一下您试图解决的问题?