Ich versuche, Testnachrichten von Arduino über Bluetooth zu senden, indem ich "Hallo Welt!" alle 100 ms. Nun, auf Android habe ich eine endlose Ergänzung von "Hallo Welt!" zu meinem StringBuilder und jeder Debug-Iteration habe ich "Hallo Welt! \ nHalle Welt! \ nHalle Welt! \ n ..." usw. Was soll ich tun? Als eine Idee werde ich eine Menge Jsons von Arduino auf Android-Gerät spammen. Muss ich spezielle Char-Sequenzen für Teiler machen, um die Zeit nach jeder Nachricht von Arduino zu unterbrechen? Oder gibt es eine einfachere Entscheidung?BufferedReader fügt endlos auf readLine()
public static String toString(InputStream inputStream) throws IOException {
byte[] bs = new byte[inputStream.available()];
if (Utils.isZero(bs.length)) {
return "";
}
BufferedReader r = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder total = new StringBuilder();
String line;
while (r.ready()) {
line = r.readLine();
total.append(line).append('\n');
}
return total.toString();
}
Was meinst du mit "break the while"? "Teiler"? Im Moment haben Sie einen 'StringBuilder' (nicht ein https://docs.oracle.com/javase/8/docs/api/java/io/StringWriter.html?), Der mehrere" Zeilen "Text enthält, was nicht schlecht aussieht Warum änderst du es? Außerdem sollten Sie den Geltungsbereich von "line" innerhalb der Schleife behalten. draußen ist zu breit. Ich nehme an, das Fehlen einer Close- oder Exception-Behandlung ist der Kürze halber. Die Verwendung von 'available()' ist unnötig und ein wenig riskant. Das Mischen von Bytes und Zeichen ist riskant. Was ist es, was du jetzt hast, was du nicht magst? –
StringBuilderObj.setLength (0) zu löschen, wenn das ist, was Sie versuchen zu tun .. Ihr Problem ist sehr vage – DarkV1
Ich sagte, ich Spam-Nachrichten von Arduino, und es ist eine endlose InputStream. Endlos. es fügt immer hinzu und fügt hinzu und fügt hinzu. Es wird niemals enden – user2976267