私はArduinoからbluetooth経由で "hello world!"というスパムメールを送信しようとしています。 100ミリ秒毎。 今、アンドロイドには "hello world!"の無限の追加があります。私のStringBuilderと各デバッグ反復には "hello world!\ nhello world!\ nhello world!\ n ..."などあります。 どうすればよいですか? アイデアとして、私はarduinoからAndroidデバイスに多くのJonsonsをスパムします。 arduinoからの各メッセージの後に分割を行うために特別なcharシーケンスを作成する必要がありますか?または、より簡単な決定がありますか?BufferedReaderは無限に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();
}
「中断する」とはどういう意味ですか? "ディバイダー"?現在、複数の「行」のテキストを含む 'StringBuilder'(https://docs.oracle.com/javase/8/docs/api/java/io/StringWriter.htmlではなく)がありますが、これは悪くないようですなぜそれを変更するのですか?また、 'line'の範囲をループ内に保持する必要があります。外側が広すぎる。私は、簡潔さのためにクローズまたは例外処理の欠如があると仮定します。 'available()'の使用は不要で少し危険です。バイトと文字を混ぜるのは危険です。あなたが今好きではないことについて、それは何ですか? –
StringBuilderObj.setLength(0)あなたがしようとしていることをクリアする。あなたの問題は非常に曖昧です。 – DarkV1
私はarduinoからのメッセージを迷惑メールといい、それは無限のInputStreamです。エンドレス。常に追加して追加して追加します。それは決して終わらないでしょう – user2976267