このためのJavadocは次のように述べています。
整数oneCharの下位2バイトのみが書き込まれます。
これは、intにキャストされた非utf8エンコード文字の書き込みにどのような影響を及ぼしますか?
アップデート:
問題のコードは、ソケットからデータを受け取り、それをファイルに書き込みます。(受信と書き込みの間に多くのことが起こるので、BufferedReader#readLine()を使用して取得した文字列を使用することはできません)。Writer#write(char [])を使用していましたが、これは毎回新しいchar配列を作成する必要があることを意味しました。毎回配列を作成することを回避するために、-1(charにキャスト)で満たされた単一のchar配列がありました。
次に、TextUtils#getCharsを使用してそれを埋め、必要に応じて配列を展開します。書き込みでは、配列をループし、char [i] ==(char)-1==trueになるまでWriterに書き込みます。