从Google云端存储下载时出现Java NIO阻止/非阻止问题

时间:2014-10-13 14:17:27

标签: java nio google-cloud-storage

我尝试从Google云端存储下载

Storage.Objects.Get get = storage.objects().get(BUCKET_NAME, fileName);
Log.i("Downloader", "Media File verified");
BufferedInputStream bufferedInputStream =  new BufferedInputStream(get.executeMediaAsInputStream());
Log.i("Downloader", "InputStreamCreated");
ReadableByteChannel readableByteChannel = Channels.newChannel(bufferedInputStream);
Log.i("Downloader", "Channel Created");
return ((SelectableChannel) readableByteChannel).configureBlocking(false);

当我尝试用选择器注册时,没有任何反应。 它只是挂起。

请帮助

1 个答案:

答案 0 :(得分:2)

configureBlocking()来电应该失败了。您无法将从Channels.newChannel()获取的频道置于非阻止模式。见Javadoc。 Ergo 您无法使用选择器注册它们。

事实上,我认为它应该在类型转换为SelectableChannel时失败。

你确定你没有错过一个例外吗?