【发布时间】:2015-03-02 18:58:52
【问题描述】:
CharsetDecoder 的 documentation 表示
解码器应始终通过执行以下方法调用序列来使用,以下称为解码操作:
通过reset方法重置解码器,除非之前没有使用过;
调用 decode 方法零次或多次,只要有额外的输入可用,为 endOfInput 参数传递 false 并在调用之间填充输入缓冲区并刷新输出缓冲区;
最后一次调用 decode 方法,为 endOfInput 参数传递 true;然后
调用 flush 方法,以便解码器可以将任何内部状态刷新到输出缓冲区。
#3 和#4 似乎在做同样的事情:表示没有更多输入,因此解码器可以完成。
如果我两者都做,我不确定我的错误处理逻辑应该是什么样子。
这两种操作有什么区别,为什么都需要?
【问题讨论】:
标签: java character-encoding flush