1package com.bumptech.glide.load.model; 2 3import android.util.Log; 4 5import com.bumptech.glide.load.Encoder; 6import com.bumptech.glide.util.ByteArrayPool; 7 8import java.io.IOException; 9import java.io.InputStream; 10import java.io.OutputStream; 11 12/** 13 * An {@link com.bumptech.glide.load.Encoder} that can write an {@link java.io.InputStream} to disk. 14 */ 15public class StreamEncoder implements Encoder<InputStream> { 16 private static final String TAG = "StreamEncoder"; 17 18 @Override 19 public boolean encode(InputStream data, OutputStream os) { 20 byte[] buffer = ByteArrayPool.get().getBytes(); 21 try { 22 int read; 23 while ((read = data.read(buffer)) != -1) { 24 os.write(buffer, 0, read); 25 } 26 return true; 27 } catch (IOException e) { 28 if (Log.isLoggable(TAG, Log.DEBUG)) { 29 Log.d(TAG, "Failed to encode data onto the OutputStream", e); 30 } 31 return false; 32 } finally { 33 ByteArrayPool.get().releaseBytes(buffer); 34 } 35 } 36 37 @Override 38 public String getId() { 39 return ""; 40 } 41} 42