Java扫描程序只在第一行方法上运行,为什么不在中间

时间:2018-05-10 04:09:24

标签: java methods

我是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){

 }        
} 

2 个答案:

答案 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()上。)