zoukankan      html  css  js  c++  java
  • Always close streams

    Always close streams

    import java.io.*;
    
    import org.apache.hadoop.conf.Configuration;
    import org.apache.hadoop.io.IOUtils;
    import org.apache.hadoop.io.compress.CompressionCodec;
    import org.apache.hadoop.io.compress.CompressionOutputStream;
    import org.apache.hadoop.io.compress.GzipCodec;
    import org.apache.hadoop.util.ReflectionUtils;
    
    public class TestBlock2 {
    	
    	public static void main(String[] args) throws Exception {
    //		Configuration conf = new Configuration();
    //		Class<?> codecClass = Class.forName("org.apache.hadoop.io.compress.GzipCodec");
    //		CompressionCodec codec = (CompressionCodec) ReflectionUtils.newInstance(codecClass, conf);
    		CompressionCodec codec = new GzipCodec();
    		
    		InputStream in  = new FileInputStream(new File("a.txt"));
    		
    		File fileOut = new File("a.txt"+codec.getDefaultExtension());
    		FileOutputStream outStream = new FileOutputStream(fileOut);
    		
    		CompressionOutputStream out = codec.createOutputStream(outStream);
    		
    		IOUtils.copyBytes(in, out, 4096, false);
    		in.close();
    //		out.close();
    		outStream.close();
    		
    	}
    }
    

      测试该代码的时候,犯了个基础的错误,在流的关闭上没有把最后引用的流关闭。

    即 out.close(); 导致的问题就是压缩流 CompressionOutputStream 没有把压缩的内容输出到文件中。

    NOTE: 记得关闭相应的流。

  • 相关阅读:
    Java线程面试题 Top 50
    深入理解java内存模型
    线程池的理解
    Thread的理解
    ThreadLocal的理解
    排序算法(简)
    排序算法
    【Java集合源码剖析】LinkedHashmap源码剖析
    vsftp上传文件权限问题
    xp 通过注册表修改环境变量
  • 原文地址:https://www.cnblogs.com/lanfengniao/p/3090114.html
Copyright © 2011-2022 走看看