AppEngineFile file = fileService.getBlobFile(blobKey); FileReadChannel ch = fileService.openReadChannel(file, true); ByteBuffer dst = ByteBuffer.allocate((int)blobInfo.getSize()); try { int sum=0; while (true) { int read = ch.read(dst); sum+=read; System.out.println(sum+" "+read); if (read<0) break; } } finally {ch.close();}