2016-08-09 3 views
-3

Цикл while работает бесконечно. Может кто-нибудь, пожалуйста, скажите мне, почему? Я попробовал другой метод, но для меня это не сработало.Хотя цикл работает бесконечно, не понимаю, почему

Ответ и поможет решить проблему , что не так написал мне не распечатываются статус выхода

  JSch jsch = new JSch(); 
      Session session = jsch.getSession(userName, host); 
      session.setPassword(passWord); 
      session.setConfig("StrictHostKeyChecking", "no"); 
      session.connect(); 
      System.out.print("Conected"); 
      channel = session.openChannel("shell"); 
      ops = channel.getOutputStream(); 
      ps = new PrintStream(ops, true); 
      channel.connect(); 
      //Log.e(Keyid,"Channel Connected"); 
      ps.println("ls"); 
      // ps.println("dir"); 
      //give commands to be executed inside println.and can have any no of commands sent. 
      ps.close(); 
      InputStream in = channel.getInputStream(); 
      // BufferedReader input = new BufferedReader(new InputStreamReader(in, "UTF-8")); 
      //System.out.println(input.ready()); 
      //String str = input.readLine(); 


      BufferedReader buffer = new BufferedReader(new InputStreamReader(in)); 
      String line= buffer.readLine(); 
      while (line != null && !line.equals("")){ 
       // length = length + line.length(); 
       line= buffer.readLine(); 
       System.out.println(buffer.readLine()); 

      } 
      System.out.println("Exit"); 

      /* while(buffer.readLine() != null){ 
       System.out.println(buffer.readLine()); 
       System.err.println(buffer.ready()); 

      }*/ 
+0

Btw..you'll печатать дополнительные линии с выше логики – Shaishav

+0

Какой другой метод вы пробовали? Вы читали javadocs для методов 'readLine' и' equals'? – codehitman

ответ

0

Используйте этот в то время как (dataIn.readLine! = NULL)

0

Я думаю, что проблема, которую вы испытываете что метод equals сравнивает строки. Но метод readLine возвращает логический null, а не строку «Null». Следовательно, сравнение терпит неудачу.

Попробуйте заменить его с этим:

while (dataIn.readLine() != null){ 
+0

не работает while (dataIn.readLine()! = Null), но я спрашиваю DataInputStream dataIn = новый DataInputStream (channel.getInputStream()); для использования во время цикла – Jagdish

Смежные вопросы