Merhaba,
Java'nın io kütüphanelerini kullanarak internette herhangi bir adreste bulunan bir imajı indirme işlemini farklı iki yöntem ile yapacağım.
İlk örnekte, OutputStream nesnesi ile imajı indireceğiz. Bu işlem aslında dosya indirme işlemi aynı işlemdir fakat genel olarak
OutputStream nesnesi bu tür işlem için kullanılıyor. Bu genel kullanımda bir ortak kütüphane kullanımından dolayı problemlerde yaşanabiliyor. Örneğin,
OutputStream nesnesi Java'nın web tarafında api içinde hazır gelir ve out nesnesi olarak yazdırma işlemlerinde kullanılır. Bu kullanım eş zamanlı iki işlemi yaptığımızda mesela, bir imaj 'ı bir lokasyona kopyalayıp, sonrada indirmeye çalıştığımızda hata alırız. Hata alma olasılığımız fakat yinede kullanılan yöntem;
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
package com.kp;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
public class InternettenImajKaydet{
public static void main(String[] args) throws Exception {
String imajUrl = "
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">;
String hedefDosya = "kp.png";
imajKaydet(imajUrl , hedefDosya );
}
public static void imajKaydet(String imajUrl , String hedefDosya ) throws IOException {
URL url = new URL(imajUrl );
InputStream is = url.openStream();
OutputStream os = new FileOutputStream(hedefDosya );
byte[] b = new byte[2048];
int length;
while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}
is.close();
os.close();
}
}
Diğer yöntem yukarıdaki yönteme göre daha sağlıklı bir yöntem
ImageIO kütüphanesini kullanıyor.
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
package com.kp;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.URL;
public class InternettenImajKaydet {
public static void main(String[] args ) {
BufferedImage imaj=null;
try{
URL url =new URL("
Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir.
style="color: #007700">);
imaj= ImageIO.read(url);
ImageIO.write(image, "png",new File("/src/hedefdosya.png"));
}catch(IOException e){
e.printStackTrace();
}
}
}
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...]