เขียน JAVA – เซฟรูปจาก URL โดยใช้ JAVA

เขียน JAVA – เซฟรูปจาก URL โดยใช้ JAVA

ในบางครั้งหากเรามี URL ของรูปภาพจำนวนมาก หากเราต้องการเซฟรูปเหล่านั้นมันคงจะเหนื่อยหน่อยเพราะรูปมันเยอะ เราก็ทำการเขียนโปรแกรมเซฟรูปภาพจาก URL หากเรารู้ URL แล้วเราก็แค่ List ใส่ข้อมูลเป็นไฟล์หรือ Database ก็แล้วแต่ จากนั้นก็จะใช้โปรแกรมเล็กๆที่เขียนโดย java ทำการเซฟรูป เพื่อช่วยให้เก็บรูปหรือบันทึกรูปได้เร็วขึ้นนั้นเอง

เริ่มแรกผมจะเขียนโปรแกรม java โดยใช้ eclipse เรามาเริ่มกันเลยดีกว่า ขั้นแรกทำการสร้าง Project เลือกเป็น Java Project

สอนเขียน java

จากนั้นผมจะตั้งชื่อ Project ว่า saveImageURL

เขียน java

เมื่อสร้างโปรเจ็คเสร็จแล้วก็ให้ทำการสร้าง Class หลักโดยกำหนดให้ชื่อเป็น Main

java สร้าง class

เมื่อสร้าง Class เสร็จแล้วก็ให้เริ่มทำการเขียนโค้ดดังต่อไปนี้

[sourcecode language=”java”]

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;

public class Main {

public static void main(String[] arg){
String targetURL = “http://new.thaicoding.net/wp-content/uploads/2013/01/Untitled.png”;
String pathSave = “C:\\”;
try{
URL url = new URL(targetURL);
String filename = url.getFile();
filename = filename.substring( filename.lastIndexOf(‘/’)+1, filename.length() );
System.out.println(“Target URL : ” + targetURL);
System.out.println(“Save File : ” + pathSave+filename);
InputStream is = url.openStream();
OutputStream os;

os = new FileOutputStream(pathSave+filename);

byte[] b = new byte[2048];
int length;

while ((length = is.read(b)) != -1) {
os.write(b, 0, length);
}

is.close();
os.close();

}
catch(IOException e){
System.out.println(e.toString());
}
}
}

[/sourcecode]

เมื่อเขียนโค้ดเสร็จแล้วก็ให้ทำการกดปุ่นรันเพื่อรันโปรแกรมที่เขียนไป

โปรแกรม java

เมื่อกดปุ่มรันแล้วจะได้ผลลัพธ์ดังรูป

ผลลัพธ์โปรแกรม java

จากโค้ดจะเห็นว่าจะทำการเซฟไฟล์ไปที่ C:\ ซึ่งเมื่อเปิดดูที่ Drive C ก็จะได้ไฟล์รูปที่เราต้องการจาก URL แล้วครับ

 

ภาษา java

จากโค้ดตัวอย่าง จะมีการใช้ตัวแปรแบบ String 2 ตัวในการเก็บค่า URL รูปภาพที่ต้องการกับอีกค่าคือ path ที่เราต้องการเซฟรูปภาพ จากนั้นจะใช้ Object URL เพื่อสร้าง Object ในการดึงข้อมูลรูปภาพ ต่อจากนั้นจะต้องมีการสร้าง Object InputStream กับ OutputStream โดยที่ InputStream  จะเป็นตัวรับข้อมูลแบบ Stream จาก URL ต่อจากนั้นจะใช้ OutputStream  ทำการเขียนข้อมูล Stream เพื่อทำการบันทึกข้อมูลจะกลายเป็นรูปภาพที่เราต้องการโดยในการเขียนข้อมูลของ OutputStream  นั้นจะทำการเขียนเป็นไบต์โดยทำการวนลูป While จนข้อมูลหมด เมื่อทำการ Write จนหมดข้อมูลแล้วสิ่งสำคัญคือการ Close OutputStream  เพื่อทำการยันทึกรูปภาพให้เสร็จสิ้นสมบูรณ์เมื่อ Close OutputStream  แล้วก็ต้องทำการ Close InputStream ด้วยข้อสำคัญอีกอย่างก็คือต้องใส่ try catch เพื่อกันกรณีไม่สร้างดึงข้อมูลรูปภาพจาก URL หรือไม่สามารถบันทึกรูปไฟล์เก็บไว้ได้

 

Download SourceCode

Leave a Reply

Your email address will not be published. Required fields are marked *