ByteSink.java 2.63 KB
package com.google.common.io;

import com.google.common.base.Preconditions;
import java.io.BufferedOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.Writer;
import java.nio.charset.Charset;

public abstract class ByteSink
{
  public CharSink asCharSink(Charset paramCharset)
  {
    return new a(paramCharset, (byte)0);
  }
  
  public OutputStream openBufferedStream()
    throws IOException
  {
    OutputStream localOutputStream = openStream();
    if ((localOutputStream instanceof BufferedOutputStream)) {
      return (BufferedOutputStream)localOutputStream;
    }
    return new BufferedOutputStream(localOutputStream);
  }
  
  public abstract OutputStream openStream()
    throws IOException;
  
  public void write(byte[] paramArrayOfByte)
    throws IOException
  {
    Preconditions.checkNotNull(paramArrayOfByte);
    Closer localCloser = Closer.create();
    try
    {
      OutputStream localOutputStream = (OutputStream)localCloser.register(openStream());
      localOutputStream.write(paramArrayOfByte);
      localOutputStream.flush();
      return;
    }
    catch (Throwable paramArrayOfByte)
    {
      throw localCloser.rethrow(paramArrayOfByte);
    }
    finally
    {
      localCloser.close();
    }
  }
  
  public long writeFrom(InputStream paramInputStream)
    throws IOException
  {
    Preconditions.checkNotNull(paramInputStream);
    Closer localCloser = Closer.create();
    try
    {
      OutputStream localOutputStream = (OutputStream)localCloser.register(openStream());
      long l = ByteStreams.copy(paramInputStream, localOutputStream);
      localOutputStream.flush();
      return l;
    }
    catch (Throwable paramInputStream)
    {
      throw localCloser.rethrow(paramInputStream);
    }
    finally
    {
      localCloser.close();
    }
  }
  
  final class a
    extends CharSink
  {
    private final Charset b;
    
    private a(Charset paramCharset)
    {
      this.b = ((Charset)Preconditions.checkNotNull(paramCharset));
    }
    
    public final Writer openStream()
      throws IOException
    {
      return new OutputStreamWriter(ByteSink.this.openStream(), this.b);
    }
    
    public final String toString()
    {
      String str1 = String.valueOf(String.valueOf(ByteSink.this.toString()));
      String str2 = String.valueOf(String.valueOf(this.b));
      return str1.length() + 13 + str2.length() + str1 + ".asCharSink(" + str2 + ")";
    }
  }
}


/* Location:              /home/merong/decompile/hackery-dex2jar.jar!/com/google/common/io/ByteSink.class
 * Java compiler version: 6 (50.0)
 * JD-Core Version:       0.7.1
 */