我是Java的新手,但是想知道为什么Scanner输入系统只在方法的第一行代码中工作而不是在下面的代码中间,因为Java逐行工作,他们应该在他们点击扫描器输入代码时要求输入。 。或者我做错了什么
public void go(){
try{
Socket soc= new Socket("127.0.0.1",5000);
PrintWriter pw= new PrintWriter(soc.getOutputStream());
Scanner s= new Scanner(System.in) ;
String txt=s.next();
pw.println(txt);
pw.flush();
pw.close();
}catch(Exception e){
}
}
答案 0 :(得分:1)
只需循环循环:
public void go(){
try{
Socket soc= new Socket("127.0.0.1",5000);
PrintWriter pw= new PrintWriter(soc.getOutputStream());
Scanner s= new Scanner(System.in) ;
while(true){
String txt=s.next();
pw.println(txt);
pw.flush();
pw.close();
}
}catch(Exception e){
}
}
答案 1 :(得分:1)
第一个问题是:
catch (Exception e){
}
这说,"捕捉所有异常并且不要告诉我发生了什么"
至少这样做:
catch (Exception e){
e.printStackTrace();
}
找出异常是什么。这将为您提供下一个问题的线索。 (这可能与Scanner
无关。我预计问题出在soc.getOutputStream()
上。)