2016-08-09 8 views
-3

Die while Schleife läuft unendlich. Könnten einige mir bitte sagen warum? Ich habe eine andere Methode ausprobiert, aber es hat nicht für mich funktioniert.While Schleife läuft unendlich, verstehe nicht warum

Antwort und helfen Problem zu lösen, was falsch mich nicht Exit-Status

  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 alternativen Linien werden Drucke mit obiger Logik – Shaishav

+0

Welche anderen Methode haben Sie versucht? Hast du die Javadocs für die 'readLine' und' equals' Methoden gelesen? – codehitman

Antwort

0

verwenden while (dataIn.readLine! = Null)

0

Ich denke, das Problem, das Sie drucken geschrieben haben, die sind hier ist, dass die equals Methode Zeichenfolgen vergleicht. Aber die readLine Methode gibt eine logische null und keine "Null" Zeichenfolge zurück. Daher schlägt der Vergleich fehl.

Versuchen Sie es mit diesem ersetzen:

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

funktioniert nicht während (dataIn.readLine()! = Null), aber ich frage DataInputStream dataIn = new DataInputStream (channel.getInputStream()); für die While-Schleife – Jagdish

Verwandte Themen