android.util.Base64OutputStream#flush should be overridden...?

84 views
Skip to first unread message

nemo

unread,
Apr 4, 2012, 6:17:30 AM4/4/12
to android-...@googlegroups.com
こんにちは。
android.util.Base64OutputStream を使っていて気になったのですが,flush() がオーバーライドされていなくて,
close() とか write(byte[] buf, int off, int len) をしないと write(int) で溜まったバッファがフラッシュされません。最近のSDKでもそのままです。

コードを眺めてみて思うに,ぶっちゃけ忘れているのではないかと思うのですが,気になった方いらっしゃいませんか。
close() するとバックエンドも close() されるので困っていたら,なにやらそれを抑止するフラグがありますね。
ううーん,そういうことなのかなぁ……

Makoto Yamazaki

unread,
Apr 5, 2012, 12:23:38 AM4/5/12
to android-...@googlegroups.com
zaki です。

まぁそういうことなんじゃないかと思います。
BASE64 へ変換するときは3バイトをまとめて処理しないといけないので
続きがあるかどうかわからない状態で全てを flush する実装は無理です。
できる限り書きだすという実装ならできないこともないですが、果たして
意味があるのかどうかという所を検討した結果いまの実装なんじゃないかと。

2012/4/4 nemo <ip...@infty.com>:

> --
> このメールは Google グループのグループ「Android-SDK-Japan」の登録者に送られています。
> このディスカッションをウェブ上で閲覧するには、https://groups.google.com/d/msg/android-sdk-japan/-/1j9oE_i_j0oJ
> にアクセスしてください。
> このグループに投稿するには、android-...@googlegroups.com にメールを送信してください。
> このグループから退会するには、android-sdk-ja...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-sdk-japan?hl=ja
> からこのグループにアクセスしてください。

--
YAMAZAKI Makoto

Reply all
Reply to author
Forward
0 new messages