1 package com.bumptech.glide.load.model; 2 3 import android.util.Log; 4 5 import com.bumptech.glide.load.Encoder; 6 import com.bumptech.glide.util.ByteArrayPool; 7 8 import java.io.IOException; 9 import java.io.InputStream; 10 import java.io.OutputStream; 11 12 /** 13 * An {@link com.bumptech.glide.load.Encoder} that can write an {@link java.io.InputStream} to disk. 14 */ 15 public 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