• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java FileWriteChannel类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.google.appengine.api.files.FileWriteChannel的典型用法代码示例。如果您正苦于以下问题:Java FileWriteChannel类的具体用法?Java FileWriteChannel怎么用?Java FileWriteChannel使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



FileWriteChannel类属于com.google.appengine.api.files包,在下文中一共展示了FileWriteChannel类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: dump

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
private static AppEngineFile dump(@Nullable String mimeType, String downloadFilename,
    ByteBuffer bytes) throws IOException {
  bytes.rewind();
  AppEngineFile file = newBlob(mimeType, downloadFilename);
  FileWriteChannel out = getFileService().openWriteChannel(file, true);
  while (bytes.hasRemaining()) {
    out.write(bytes);
  }
  out.closeFinally();
  // Verify if what's in the file matches what we wanted to write -- the Files
  // API is still experimental and I've seen it misbehave.
  bytes.rewind();
  byte[] expected = getBytes(bytes);
  byte[] actual = slurp(file);
  if (!Arrays.equals(expected, actual)) {
    // These may be big log messages, but we need to log something that helps debugging.
    log.warning("Tried to write: " + prettyBytes(expected));
    log.warning("Bytes found in file: " + prettyBytes(actual));
    throw new IOException("File " + file + " does not contain the bytes we intended to write");
  }
  return file;
}
 
开发者ID:ArloJamesBarnes,项目名称:walkaround,代码行数:23,代码来源:FetchAttachmentsProcessor.java


示例2: writeSchema

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
public static void writeSchema(FileService fileService, String bucketName, String schemaKey, List<String> fieldNames, List<String> fieldTypes) throws IOException,
FileNotFoundException, FinalizationException, LockException {
	GSFileOptionsBuilder schemaOptionsBuilder = new GSFileOptionsBuilder()
	.setBucket(bucketName)
	.setKey(schemaKey)
	.setAcl("project-private");
	AppEngineFile schemaFile = fileService.createNewGSFile(schemaOptionsBuilder.build());
	FileWriteChannel schemaChannel = fileService.openWriteChannel(schemaFile, true);
	PrintWriter schemaWriter = new PrintWriter(Channels.newWriter(schemaChannel, "UTF8"));
	StringBuilder sb = new StringBuilder();
	for (int i = 0; i < fieldNames.size(); i++) {
		sb.append(fieldNames.get(i) + ":" + fieldTypes.get(i));
		if (i < fieldNames.size() - 1) {
			sb.append(",");
		}
	}
	schemaWriter.print(sb);
	schemaWriter.close();
	schemaChannel.closeFinally();
}
 
开发者ID:steveseo,项目名称:l2bq,代码行数:21,代码来源:AnalysisUtility.java


示例3: doGet

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
@Override
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
	try {
	System.out.println(newFileName());
	 FileService fileService = FileServiceFactory.getFileService();
	GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
	.setBucket("wt1-test1")
	.setKey(newFileName());

	AppEngineFile aef = fileService.createNewGSFile(optionsBuilder.build());
	
	FileWriteChannel ch = fileService.openWriteChannel(aef, true);
	
	Channels.newWriter(ch, "utf8").append("pouet").flush();
	
	ch.closeFinally();
	System.out.println("SUCCESS **************");
	} catch (Exception e) {
		System.out.println("FAILURE **************************");
		e.printStackTrace();
	}
}
 
开发者ID:dataiku,项目名称:wt1,代码行数:23,代码来源:TestServlet.java


示例4: processFileWithContent

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
private void processFileWithContent( final PersistenceManager pm, final Key fileKey, final String fileTypeString ) throws IOException {
	LOGGER.fine( "File key: " + fileKey + ", file type: " + fileTypeString );
	
	final FileType fileType = FileType.fromString( fileTypeString );
	
	final FileMetaData fmd;
	try {
		fmd =  (FileMetaData) pm.getObjectById( FILE_TYPE_CLASS_MAP.get( fileType ), fileKey );
	} catch ( final JDOObjectNotFoundException jonfe ) {
		LOGGER.warning( "File not found! (Deleted?)" );
		return;
	}
	LOGGER.fine( "sha1: " + fmd.getSha1() );
	if ( fmd.getBlobKey() != null && fmd.getContent() == null ) {
		LOGGER.warning( "This file is already processed!" );
		return;
	}
	if ( fmd.getContent() == null ) {
		LOGGER.warning( "File does not have content!" );
		return;
	}
	
	// Store content in the Blobstore
	final FileService      fileService = FileServiceFactory.getFileService();
	final AppEngineFile    appeFile    = fileService.createNewBlobFile( FILE_TYPE_MIME_TYPE_MAP.get( fileType ), fmd.getSha1() );
	final FileWriteChannel channel     = fileService.openWriteChannel( appeFile, true );
	final ByteBuffer       bb          = ByteBuffer.wrap( fmd.getContent().getBytes() );
	while ( bb.hasRemaining() )
		channel.write( bb );
	channel.closeFinally();
	
	fmd.setBlobKey( fileService.getBlobKey( appeFile ) );
	fmd.setContent( null );
	
	// I do not catch exceptions (so the task will be retried)
}
 
开发者ID:icza,项目名称:sc2gears,代码行数:37,代码来源:TaskServlet.java


示例5: service

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
public void service(ServletRequest req, ServletResponse res) throws ServletException, IOException {
    log.info("Ping - " + req);

    if (requestHandler != null) {
        requestHandler.handleRequest(req);
    }

    lastRequest = req;

    final DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
    try {
        Entity entity = new Entity("Qwert");
        entity.setProperty("xyz", 123);
        Key key = ds.put(entity);

        entity = ds.get(key);
        log.info(entity.toString());

        FileService fs = FileServiceFactory.getFileService();
        AppEngineFile file = fs.createNewBlobFile("qwertfile");
        FileWriteChannel fwc = fs.openWriteChannel(file, false);
        try {
            log.info("b_l = " + fwc.write(ByteBuffer.wrap("qwert".getBytes())));
        } finally {
            fwc.close();
        }
    } catch (Exception e) {
        throw new IOException(e);
    }
}
 
开发者ID:GoogleCloudPlatform,项目名称:appengine-tck,代码行数:31,代码来源:PrintServlet.java


示例6: setUp

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
@Before
public void setUp() throws Exception {
    fileService = FileServiceFactory.getFileService();
    AppEngineFile file = fileService.createNewBlobFile("image/png");
    FileWriteChannel channel = fileService.openWriteChannel(file, true);
    try {
        try (ReadableByteChannel in = Channels.newChannel(getImageStream("capedwarf.png"))) {
            copy(in, channel);
        }
    } finally {
        channel.closeFinally();
    }

    blobKey = fileService.getBlobKey(file);
}
 
开发者ID:GoogleCloudPlatform,项目名称:appengine-tck,代码行数:16,代码来源:ImageServingUrlTest.java


示例7: writeToFile

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
private void writeToFile(AppEngineFile file, String content) throws IOException {
    FileWriteChannel channel = service.openWriteChannel(file, true);
    try {
        channel.write(ByteBuffer.wrap(content.getBytes()));
    } finally {
        channel.closeFinally();
    }
}
 
开发者ID:GoogleCloudPlatform,项目名称:appengine-tck,代码行数:9,代码来源:ServeBlobServlet.java


示例8: writeNewBlobFile

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
protected BlobKey writeNewBlobFile(String text) throws IOException {
    FileService fileService = FileServiceFactory.getFileService();
    AppEngineFile file = fileService.createNewBlobFile("text/plain", "uploadedText.txt");
    FileWriteChannel channel = fileService.openWriteChannel(file, true);
    try {
        channel.write(ByteBuffer.wrap(text.getBytes()));
    } finally {
        channel.closeFinally();
    }
    return fileService.getBlobKey(file);
}
 
开发者ID:GoogleCloudPlatform,项目名称:appengine-tck,代码行数:12,代码来源:BlobstoreTestBase.java


示例9: flushBuffer

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
private synchronized void flushBuffer(boolean reinit) throws IOException {
	if (curBuf == null) {
		// processor has already been shutdown
		return;
	}
	curBufGZ.flush();
	curBufGZ.close();

	if (writtenEvents > 0) {
		String name = CSVFormatWriter.newFileName("b" + BackendServiceFactory.getBackendService().getCurrentInstance());

		logger.info("Opening new file name=" + name);
		AppEngineFile file = newFile(name);
		FileWriteChannel channel = fileService.openWriteChannel(file, true);

		logger.info("Writing new file name=" + name + " inSize=" + writtenBeforeGZ + " gzSize=" +  curBuf.size() + ")");
		channel.write(ByteBuffer.wrap(curBuf.toByteArray()));
		logger.info("Closing new file");
		channel.closeFinally();
		logger.info("Closed new file");

		Stats stats = ProcessingQueue.getInstance().getStats();
		synchronized (stats) {
			stats.createdFiles++;
			stats.savedEvents += writtenEvents;
			stats.savedEventsGZippedSize += curBuf.size();
			stats.savedEventsInputSize += writtenBeforeGZ;
		}
	} else {
		logger.info("No events to flush");
	}

	curBuf = null;
	curBufGZ = null;
	if (reinit) {
		initBuffer();
	}
}
 
开发者ID:dataiku,项目名称:wt1,代码行数:39,代码来源:GCSGAEStorageProcessor.java


示例10: writeToFile

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
private static BlobKey writeToFile(Image image) throws IOException {
  FileService fileService = FileServiceFactory.getFileService();
  AppEngineFile file = fileService.createNewBlobFile(toMimeType(image.getFormat()));
  FileWriteChannel writeChannel = fileService.openWriteChannel(file, true);
  writeChannel.write(ByteBuffer.wrap(image.getImageData()));
  writeChannel.closeFinally();
  return fileService.getBlobKey(file);
}
 
开发者ID:karma-exchange-org,项目名称:karma-exchange,代码行数:9,代码来源:ImageUploadUtil.java


示例11: CloseFinallyChannel

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
private CloseFinallyChannel(FileWriteChannel delegate) {
  this.delegate = delegate;
}
 
开发者ID:ArloJamesBarnes,项目名称:walkaround,代码行数:4,代码来源:OversizedPropertyMover.java


示例12: storeBlob

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
private BlobKey storeBlob(String contentType, String fileName, InputStream stream) throws IOException {
	FileService fileService = FileServiceFactory.getFileService();
	AppEngineFile file = fileService.createNewBlobFile(contentType, fileName);

	boolean lock = true;
	FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);
	ByteBuffer buf = ByteBuffer.allocateDirect(10);

	byte[] bytes = new byte[1024];
	int count = 0;
	int index = 0;

	// Continue writing bytes until there are no more
	while (count >= 0) {
		if (index == count) {
			count = stream.read(bytes);
			index = 0;
		}
		// Fill ByteBuffer
		while (index < count && buf.hasRemaining()) {
			buf.put(bytes[index++]);
		}

		// Set the limit to the current position and the
		// position to 0
		// making the new bytes visible for write()
		buf.flip();

		// Write the bytes to the channel
		int numWritten = writeChannel.write(buf);

		// Check if all bytes were written
		if (buf.hasRemaining()) {
			buf.compact();
		} else {
			buf.clear();
		}
	}

	writeChannel.closeFinally();
	return fileService.getBlobKey(file);
}
 
开发者ID:WELTEN,项目名称:dojo-ibl,代码行数:43,代码来源:BlobStoreServlet.java


示例13: structureFileAndPostToDb

import com.google.appengine.api.files.FileWriteChannel; //导入依赖的package包/类
/**
 * @return
 * @throws IOException
 */
private boolean structureFileAndPostToDb() throws IOException {

    /* Define the File API specific instances */
    BlobstoreService blobStoreService = BlobstoreServiceFactory.getBlobstoreService();
    FileService fileService = FileServiceFactory.getFileService();

    /* */
    final AppEngineFile blobFile = fileService.createNewBlobFile(dataWhole.getMimeType(), dataWhole.getFileName());

    /* */
    final FileWriteChannel writeChannel = fileService.openWriteChannel(blobFile, true);

    /* */
    Boolean transaction = ofy().transact(new Work<Boolean>() {
        @Override
        public Boolean run() {
            dataPieces = ofy().load().keys(dataWhole.getDataPieceKeyList());
            return dataPieces.size() > 0 ? true : false;
        }
    });

    if (transaction) {

        int length;
        byte[] buffer = new byte[1024000];

        for (int i = 1; i <= dataPieces.size(); i++) {

            Key<DataPiece> pieceKey = Key.create(Key.create(DataWhole.class, dataWhole.getKey()), DataPiece.class,
                    dataWhole.getKey() + i);

            DataPiece dataPiece = dataPieces.get(pieceKey);

            logger.log(Level.INFO, "DataPiece Blobkey is " + dataPiece.getBlobKey());
            BlobstoreInputStream blobStream = new BlobstoreInputStream(dataPiece.getBlobKey());

            while ((length = blobStream.read(buffer)) != -1) {
                writeChannel.write(ByteBuffer.wrap(buffer, 0, length));
            }

            blobStream.close();
            blobStoreService.delete(dataPiece.getBlobKey());
        }

        writeChannel.closeFinally();

        dataWhole.setBlobKey(fileService.getBlobKey(blobFile));

        logger.log(Level.INFO, "New Blobkey is " + fileService.getBlobKey(blobFile));
        
        /* Remove the pieces once it has been successfully restructured */
        for (DataPiece piece : dataPieces.values()) {
            blobStoreService.delete(piece.getBlobKey());
        }

        Boolean dwTransaction = ofy().transact(new Work<Boolean>() {
            @Override
            public Boolean run() {
                /* Persist the modified DataWhole */
                dataWhole.setDataPieceKeyList(new ArrayList<Key<DataPiece>>());
                ofy().save().entity(dataWhole).now();

                /* Remove the DataWhole's children */
                ofy().delete().entities(dataPieces.values()).now();

                return true;
            }
        });

        return dwTransaction;
    }

    return false;

}
 
开发者ID:lolletsoc,项目名称:dissertation-project,代码行数:80,代码来源:FileJoinerBackend.java



注:本文中的com.google.appengine.api.files.FileWriteChannel类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Connector类代码示例发布时间:2022-05-22
下一篇:
Java NoSuchArchiverException类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap