0

App Engine 可以存储诸如 ObjectOutputStream 之类的信息吗?

4

3 回答 3

2

当然,GAE 可以存储数据块。使用Blob存储高达 1Mb 的数据,使用Blobstore存储更大的对象。

于 2012-07-10T04:42:39.863 回答
0

GAE 确实支持 Blob 数据。但是有一些尺寸限制。这是API文档

但其他选择是使从 com.google.appengine.api.datastore.Entity 扩展的 POJO 是可序列化的,并且 GAE 可以存储信息。如果您正在寻找有关它的一些文档或信息,请查看此内容可以在此处查找有关扩展实体的更多信息。

于 2012-07-10T04:34:21.637 回答
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 回答