0

App Engine は ObjectOutputStream のような情報を保存できますか?

4

3 に答える 3

2

もちろん、GAEはデータの塊を保存できます。最大1MbのデータにはBlobs使用し、より大きなオブジェクトにはBlobstoreを使用します。

于 2012-07-10T04:42:39.863 に答える
0
      FileService fileService = FileServiceFactory.getFileService();

      // Create a new Blob file with mime-type "text/plain"
      AppEngineFile file = fileService.createNewBlobFile("text/plain");

      // Open a channel to write to it
      boolean lock = true;
      FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);




      MyObject obj = new MyObject();
      obj.name="testing now";
      ObjectOutputStream oos = new ObjectOutputStream(Channels.newOutputStream(writeChannel));
      oos.writeObject(obj);
      oos.flush();
      oos.close();
      // Now finalize
      writeChannel.closeFinally();

      // Later, read from the file using the file API
      FileReadChannel readChannel = fileService.openReadChannel(file, false);
      ObjectInputStream ooi = new ObjectInputStream(Channels.newInputStream(readChannel));
      resp.setContentType("text/plain");
      try {
        resp.getWriter().print(ooi.readObject().toString());
    } catch (ClassNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

POJO を blobstore に保存するためのコードを次に示します。MyObject は Serializable インターフェイスを実装する必要があります。

于 2012-07-10T10:17:06.913 に答える
0

GAE は Blob データをサポートします。しかし、いくつかのサイズ制限があります。ここにAPIドキュメントがあります

しかし、他のオプションは、com.google.appengine.api.datastore.Entity から拡張された POJO をシリアライズ可能にし、GAE が情報を保存できるようにすることです。関連するドキュメントや情報をお探しの場合は、こちらをご覧ください。エンティティの拡張に関する詳細については、こちらを参照してください

于 2012-07-10T04:34:21.637 に答える