Tag: completionhandler

Java中的完成处理程序?

我一直在为iOS编码,我对Objective-C中的块概念非常熟悉。 现在我正在利用Java for Android并试图将一些应用程序从Android转换为iOS。 我读到Java中没有完美的块相当,所以我想知道实现完成处理程序或类似工作的最佳替代方法是什么。

如何使用CompletionHandlers和小于请求的ByteBuffer读取请求?

我使用的是Java 7和AsynchronousSocketChannel 。 我想阅读一个请求(例如HTTP POST )但是我很难想出一个很好的解决方案来读取完整的请求,如果它大于我正在使用的ByteBuffer的大小。 例如,如果ByteBuffer是4048字节,并且HTTP POST包含大于4kB的图像。 这有什么好的递归解决方案或循环吗? 这是我的阅读请求代码: public void readRequest(final AsynchronousSocketChannel ch) { final ByteBuffer buffer = ByteBuffer.allocate(BUFFER_SIZE); final StringBuilder strBuilder = new StringBuilder(); final CharsetDecoder decoder = Charset.forName(“US-ASCII”).newDecoder(); ch.read(buffer, null, new CompletionHandler() { public void completed(Integer bytes, Void att) { buffer.flip(); try { decoder.reset(); strBuilder.append(decoder.decode(buffer).toString()); } catch (CharacterCodingException e) { e.printStackTrace(); […]