InputStream to Base64 for Java6 and Java6++

Önceleri Java, sun firmasına aitti. Daha sonra Oracle satın aldı. Dilde köklü değişikliklere gidildi. Bu anlamda konuya başlık olduğu gibi inputstream objesinden base64 string elde etmek istediğimizde jdk sürümümüze göre 2 farklı şekilde kodumuzu şekillendirmeliyiz. Kod içerisindeki comment’ lerde de anlatildigi gibi:

[code language=”java”]

package com.xxx.util;

import java.io.IOException;
import java.io.InputStream;
import java.util.Base64;

import org.apache.commons.io.IOUtils;

import sun.misc.BASE64Encoder;

public class Dummy {

@SuppressWarnings("restriction")
//java 6 icin new BASE64Encoder().encode(bytes) metoduna kısıtlama getiriliyor. yani sadece compiler java 6 icin bu metot calisiyor.
public static String inputStreamtoBase64str(InputStream data){
byte[] bytes = new byte[]{};
String encoded=new String();
try {
bytes = IOUtils.toByteArray(data);
//TODO :encoded jdk surumune gore asagidaki gibi iki sekilde yazilabilir.
//1
encoded=new BASE64Encoder().encode(bytes);//java 6. import sun.misc.BASE64Encoder kullanir
//2
encoded = Base64.getEncoder().encodeToString(bytes);//java 6 sonrasi icin. import java.util.Base64 kullanir.
} catch (IOException e) {
e.printStackTrace();
}
return encoded;
}
}

[/code]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir