2013-09-28 3 views
0

У меня есть этот кодКак читать первые пять символов из буферизованного считывателя?

Process p =Runtime.getRuntime().exec("busybox"); 
     InputStream a = p.getInputStream(); 
     InputStreamReader read = new InputStreamReader(a); 
     BufferedReader in = new BufferedReader(read); 

Запуск из терминала первых строк oupout вернуть версию Busybox. Если бы я хотел взять, например, первые 5 персонажей?

+0

Вы хотите прочитать первые пять символов из буферизованного считывателя? –

+0

Да .............. –

+0

@ MariocciRossini-Just использование subString (int startposition, int endposition) ... Я думаю, что это поможет u. – FarhaSameer786

ответ

0

попробовать

String line = in.readLine(); 
if(line!=null && line.length() >5) 
    line = line.substring(0, 5); 
0

ли этот путь

Process p; 
     try { 
      p = Runtime.getRuntime().exec("busybox"); 
      InputStream a = p.getInputStream(); 
      InputStreamReader read = new InputStreamReader(a); 
      BufferedReader in = new BufferedReader(read); 
      StringBuilder buffer = new StringBuilder(); 
      String line = null; 
      try { 
       while ((line = in.readLine()) != null) { 
        buffer.append(line); 
       } 

      } finally { 
       read.close(); 
       in.close(); 
      } 

      String result = buffer.toString().substring(0, 15); 
      System.out.println("Result : " + result); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

Выход

Результат: BusyBox v1.13.3

+0

Должен ли он быть buffer.toString(). Substring (0, 5)? – upog

2

В то время как другие ответы должны хорошо работать также следующие выйдет и закроет поток после rea ding five characters:

Process p = Runtime.getRuntime().exec("busybox"); 
    InputStream a = p.getInputStream(); 
    InputStreamReader read = new InputStreamReader(a); 

    StringBuilder firstFiveChars = new StringBuilder(); 

    int ch = read.read(); 

    while (ch != -1 && firstFiveChars.length() < 5) { 
     firstFiveChars.append((char)ch); 
     ch = read.read(); 
    } 

    read.close(); 
    a.close(); 

    System.out.println(firstFiveChars);