2013-10-27 2 views
0

Как я могу использовать StringReader в Java для чтения в конец строки, где я не знаю, какая длина строки будет.Использование StringReader для чтения в конец строки

Это насколько я получил до сих пор:

public static boolean portForward(Device dev, int localPort, int remotePort) 
{ 
    boolean success = false; 
    AdbCommand adbCmd = Adb.formAdbCommand(dev, "forward", "tcp:" + localPort, "tcp:" + remotePort); 
    StringReader reader = new StringReader(executeAdbCommand(adbCmd)); 
    try 
    { 
     if (/*This is what's missing :/ */) 
     { 
      success = true; 
     } 
    } catch (Exception ex) { 
     JOptionPane.showMessageDialog(null, "There was an error while retrieving the list of devices.\n" + ex + "\nPlease report this error to the developer/s.", "Error Retrieving Devices", JOptionPane.ERROR_MESSAGE); 
    } finally { 
     reader.close(); 
    } 

    return success; 
} 
+2

Хорошо, что вы пытаетесь сделать со строкой? Очень неясно, какое условие вы пытаетесь проверить. –

+0

Ну, я просто хочу проверить, не пусто. Быть честным. – SimonC

+0

StringReader, более или менее, такой же, как любой Reader, поэтому притворяйтесь, что это файл, как бы вы поступали так, как хотите? –

ответ

1

на основе комментария к вашему вопросу, где вы в основном говорят, что вы просто хотите, чтобы убедиться, что строка пуста.

if (reader.read() == -1) 
{ 
    // There is nothing in the stream, way to go!! 
    success = true; 
} 

или, еще проще:

String result = executeAdbCommand(adbCmd); 
success = result.length() == 0; 
3
String all = executeAdbCommand(adbCmd); 
if (all.isEmpty()) { 
} 

Обычно StringReader используется для чтения/процесса кусочно, и не очень подходит здесь.

BufferedReader reader = new BufferedReader(
    new StringReader(executeAdbCommand(adbCmd))); 
try 
{ce 
    for (;;) 
    { 
     String line = reader.readLine(); 
     if (line == null) 
      break; 
    } 
} catch (Exception ex) { 
    JOptionPane.showMessageDialog(null, "...", 
     "Error Retrieving Devices", JOptionPane.ERROR_MESSAGE); 
} finally { 
    reader.close(); 
} 
Смежные вопросы