TestCodec.java 文件源码

java
阅读 23 收藏 0 点赞 0 评论 0

项目:hadoop-0.20 作者:
public void testGzipCodecWrite() throws IOException {
  // Create a gzipped file using a compressor from the CodecPool,
  // and try to read it back via the regular GZIPInputStream.

  // Don't use native libs for this test.
  Configuration conf = new Configuration();
  conf.setBoolean("hadoop.native.lib", false);
  assertFalse("ZlibFactory is using native libs against request",
      ZlibFactory.isNativeZlibLoaded(conf));

  // Ensure that the CodecPool has a BuiltInZlibDeflater in it.
  Compressor zlibCompressor = ZlibFactory.getZlibCompressor(conf);
  assertNotNull("zlibCompressor is null!", zlibCompressor);
  assertTrue("ZlibFactory returned unexpected deflator",
      zlibCompressor instanceof BuiltInZlibDeflater);
  CodecPool.returnCompressor(zlibCompressor);

  // Create a GZIP text file via the Compressor interface.
  CompressionCodecFactory ccf = new CompressionCodecFactory(conf);
  CompressionCodec codec = ccf.getCodec(new Path("foo.gz"));
  assertTrue("Codec for .gz file is not GzipCodec", codec instanceof GzipCodec);

  final String msg = "This is the message we are going to compress.";
  final String tmpDir = System.getProperty("test.build.data", "/tmp/");
  final String fileName = new Path(new Path(tmpDir),
      "testGzipCodecWrite.txt.gz").toString();

  BufferedWriter w = null;
  Compressor gzipCompressor = CodecPool.getCompressor(codec);
  if (null != gzipCompressor) {
    // If it gives us back a Compressor, we should be able to use this
    // to write files we can then read back with Java's gzip tools.
    OutputStream os = new CompressorStream(new FileOutputStream(fileName),
        gzipCompressor);
    w = new BufferedWriter(new OutputStreamWriter(os));
    w.write(msg);
    w.close();
    CodecPool.returnCompressor(gzipCompressor);

    verifyGzipFile(fileName, msg);
  }

  // Create a gzip text file via codec.getOutputStream().
  w = new BufferedWriter(new OutputStreamWriter(
      codec.createOutputStream(new FileOutputStream(fileName))));
  w.write(msg);
  w.close();

  verifyGzipFile(fileName, msg);
}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号