не могу распечатать данные загруженного блоба - PullRequest
0 голосов
/ 15 апреля 2010
            int start=0,flag=1;
            long size=blobInfo.getSize(),fetched=0,fetch;
            byte temp[] = null;

            while(fetched<size){
               if(size-fetched>MAX_BLOB_FETCH_SIZE)
                    fetch=MAX_BLOB_FETCH_SIZE;
               else
                    fetch=size-fetched;

               temp=blobstoreService.fetchData(blobKey,fetched,fetch );

               fetched+=fetch;
               out.println(temp);
        }

Я попытался напечатать данные загруженного текстового файла, используя приведенный выше код, но, похоже, он не работает.

Ответы [ 2 ]

1 голос
/ 15 апреля 2010

у меня все получилось. как

в то время как (blobInfo.getSize ()> positionInBlob) { long endIndex = Math.min (blobInfo.getSize (), positionInBlob + chunkSize); chunk = blobstoreService.fetchData (blobKey, positionInBlob, endIndex); positionInBlob + = chunk.length;

         for(int j=0;j<chunk.length;j++){
             int c=chunk[j];
             out.println((char)c);
         }

     }
0 голосов
/ 28 марта 2011

Мои заметки Blob: http://code.google.com/p/gwt-examples/wiki/DemoGAEMultiFileBlobUpload

Мои извлечения:

приватный байт [] getImageBytes (BlobData blobData) { if (blobData == null) { вернуть ноль; }

BlobKey blobKey = new BlobKey(blobData.getKey());
if (blobKey == null) {
  return null;
}

ByteArrayOutputStream out = new ByteArrayOutputStream();
long filesize = blobData.getSize();
int chunkSize = 1024;
long offset = 0;
while (offset < filesize) {

  long limit = offset + chunkSize - 1;
  if (filesize < limit) {
    limit = filesize;
  }

  System.out.println("offset=" + offset + " limit=" + limit);

  byte[] b = null;
  try {
    b = blobstoreService.fetchData(blobKey, offset, limit);
  } catch (Exception e) {
    e.printStackTrace();
    return null;
  }
  try {
    out.write(b);
  } catch (IOException e) {
    e.printStackTrace();
    return null;
  }

  offset += chunkSize;
  if (offset > filesize) {
    offset = filesize;
  }
}

byte[] filebytes = out.toByteArray();

System.out.println("getImageBytes(): filebytes size: " + filebytes.length + " blobData.size=" + blobData.getSize());

return filebytes;

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...