เมื่อวานนี้เมื่อฉันทำงานในโครงการฉันใช้ความรู้ในการดาวน์โหลดไฟล์จากเซิร์ฟเวอร์และบันทึกไปยังพื้นที่ท้องถิ่น ฉันไม่เคยสัมผัสกับพวกเขามาก่อน ฉันทำงานกับพวกเขาเป็นเวลาหนึ่งวันเมื่อวานนี้และใช้งานฟังก์ชั่นเล็ก ๆ นี้ มาพูดคุยสั้น ๆ เกี่ยวกับกระบวนการดำเนินการด้านล่าง
1. ความรู้พื้นฐาน
เมื่อเราต้องการดาวน์โหลดทรัพยากรบนเว็บไซต์เราจะได้รับ URL ซึ่งเป็นคำอธิบายของตำแหน่งทรัพยากรของเซิร์ฟเวอร์ กระบวนการดาวน์โหลดมีขั้นตอนต่อไปนี้:
(1) ไคลเอนต์เริ่มคำขอ URL เพื่อรับวัตถุการเชื่อมต่อ
(2) เซิร์ฟเวอร์วิเคราะห์ URL และส่งคืนทรัพยากรที่ระบุไปยังไคลเอนต์
(3) สร้างไดเรกทอรีที่เก็บไว้และชื่อไฟล์ที่บันทึกไว้
(4) ข้อมูลการเขียนคือเอาต์พุต
(5) ปิดสตรีมอินพุตและสตรีมเอาต์พุต
2. วิธีการใช้รหัส
/** * @function ดาวน์โหลดอินเทอร์เฟซวัสดุชั่วคราว * @param filepath ไดเรกทอรีที่จะบันทึกไว้ในไฟล์ * @param วิธีการขอวิธีการรวมถึงโพสต์และรับ * @param url เส้นทางที่จะร้องขอ * @return */ไฟล์คงที่สาธารณะ saveurlas // สร้างไฟล์ไดเรกทอรีโฟลเดอร์ที่แตกต่างกันไฟล์ = ไฟล์ใหม่ (FilePath); // ตรวจสอบว่าโฟลเดอร์มีอยู่ถ้า (! file.exists ()) {// หากโฟลเดอร์ไม่มีอยู่ให้สร้าง folder file.mkdirs (); } fileOutputStream fileout = null; httpurlConnection conn = null; inputStream inputStream = null; ลอง {// สร้างลิงค์ url httpurl = url ใหม่ (url); conn = (httpurlconnection) httpurl.openconnection (); // ส่งแบบฟอร์มในโหมดโพสต์เมธอดเริ่มต้นคือ conn.setRequestMethod (วิธีการ); conn.setDoInput (จริง); conn.setDooutput (จริง); // conn.setusecaches ที่แคช (เท็จ); // เชื่อมต่อทรัพยากรที่ระบุเชื่อมต่อ connect (); // รับเครือข่ายอินพุตสตรีม inputStream = conn.getInputStream (); bufferedInputStream bis = ใหม่ bufferedInputStream (inputStream); // ตรวจสอบว่าเส้นทางการบันทึกของไฟล์ลงท้ายด้วย/if (! filepath.endswith ("/")) {filepath += "/"; } // เขียนไปยังไฟล์ (โปรดทราบว่าชื่อไฟล์จะต้องเพิ่มหลังจากพา ธ การบันทึกของไฟล์) fileout = new fileOutputStream (filePath+"123.png"); bufferedOutputStream bos = ใหม่ bufferedOutputStream (fileout); ไบต์ [] buf = ไบต์ใหม่ [4096]; ความยาว int = bis.read (buf); // บันทึกไฟล์ในขณะที่ (ความยาว! = -1) {bos.write (buf, 0, ความยาว); ความยาว = bis.read (buf); } bos.close (); bis.close (); conn.disconnect (); } catch (exception e) {e.printstacktrace (); System.out.println ("โยนข้อยกเว้น !!"); } ส่งคืนไฟล์; - 3. คลาสทดสอบรหัส (ฟังก์ชั่นหลัก)
/** * @param args */โมฆะคงที่สาธารณะหลัก (สตริง [] args) {สตริง photourl = "https://ss0.bdstatic.com/5av1bjqh_q23odcf/static/superman/img/logo/bd_logo1_31bdc765.png string filename = photourl.substring (photourl.lastindexof ("/")); //system.out.println("filename------>"+filename); String filePath = "D:"; ไฟล์ไฟล์ = saveurlas (Photourl, FilePath + ชื่อไฟล์, "Get"); System.out.println ("เรียกใช้ตกลง!/n <br> รับไฟล์ URL" + ไฟล์); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น