Próbuję odczytać wynik polecenia powłoki w buforze ciągów, odczyt i dodanie wartości jest poprawne, z wyjątkiem faktu, że dodane wartości są co drugi wiersz w wyjściu powłoki. Na przykład, mam 10 wierszy wyjścia powłoki, a ten kod przechowuje tylko 1, 3, 5, 7, 9, wiersz. Czy ktoś może wskazać, dlaczego nie jestem w stanie złapać każdego wiersza z tym kodem? wszelkie sugestie lub pomysł jest mile widziany :)Przechowywanie wyników powłoki
import java.io.*;
public class Linux {
public static void main(String args[]) {
try {
StringBuffer s = new StringBuffer();
Process p = Runtime.getRuntime().exec("cat /proc/cpuinfo");
BufferedReader input =
new BufferedReader(new InputStreamReader(p.getInputStream()));
while (input.readLine() != null) {
//System.out.println(line);
s.append(input.readLine() + "\n");
}
System.out.println(s.toString());
} catch (Exception err) {
err.printStackTrace();
} }
}
Witam, Dziękuję za odpowiedź. Próbowałem z tym również while (s.append (input.readLine())! = Null) { \t //System.out.println(line); \t s.append (input.readLine() + "\ n"); } Ale kod zostaje zatrzymany, czy możesz wkleić mi przykład? –