بالأمس ، عندما كنت أعمل في مشروع ، استخدمت معرفة تنزيل الملفات من الخادم وحفظها في المنطقة المحلية. لم يتعرض لهم من قبل. عملت عليهم ليوم أمس وتم تنفيذ هذه الوظيفة الصغيرة. دعنا نتحدث بإيجاز عن عملية التنفيذ أدناه ؛
1. المعرفة الأساسية
عندما نريد تنزيل مورد على موقع الويب ، سنحصل على عنوان URL ، وهو وصف لموقع مورد الخادم. تتضمن عملية التنزيل الخطوات التالية:
(1) يبدأ العميل طلب URL للحصول على كائن الاتصال.
(2) الخادم يحلل عنوان URL ويعيد المورد المحدد إلى العميل.
(3) إنشاء الدليل المخزن واسم الملف المحفوظ.
(4) كتابة البيانات هي الإخراج.
(5) قم بإيقاف تشغيل دفق الإدخال ودفق الإخراج.
2. طرق تنفيذ الكود
/** * function قم بتنزيل واجهة المواد المؤقتة * param filepath الدليل المراد حفظه في طريقة طلب * param ، بما في ذلك post و get * param url المسار إلى طلب * @ملف static public saveurlas (url url ، string filepath ، string) // إنشاء ملف ملف أدلة مجلدات مختلفة = ملف جديد (FilePath) ؛ // تحديد ما إذا كان المجلد موجودًا إذا (! file.exists ()) {// إذا لم يكن المجلد موجودًا ، فقم بإنشاء File.mkdirs () ؛ } fileOutputStream fileOut = null ؛ httpurlConnection conn = null ؛ inputStream inputStream = null ؛ حاول {// إنشاء ارتباط url httpurl = url new (url) ؛ conn = (httpurlConnection) httpurl.openconnection () ؛ // إرسال النموذج في وضع POST ، فإن طريقة GET الافتراضية هي Conn.SetRequestMethod (method) ؛ conn.setDoInput (صواب) ؛ conn.setDooutput (صواب) ؛ // conn.setuseCaches المخزنة مؤقتًا (false) ؛ // قم بتوصيل المورد المحدد connect.connect () ؛ // الحصول على إدخال إدخال الشبكة inputStream = conn.getInputStream () ؛ BufferedInputStream BIS = جديد BufferedInputStream (inputStream) ؛ // تحديد ما إذا كان مسار حفظ الملف ينتهي مع/if (! filepath.endswith ("/")) {filePath += "/" ؛ } // اكتب إلى الملف (لاحظ أنه يجب إضافة اسم الملف بعد مسار حفظ الملف) FileOut = جديد fileOutputStream (FilePath+"123.png") ؛ bufferedoutputstream bos = جديد bufferedoutputstream (fileOut) ؛ Byte [] buf = new byte [4096] ؛ طول int = bis.read (buf) ؛ // احفظ الملف بينما (طول! = -1) {bos.write (buf ، 0 ، length) ؛ طول = bis.Read (buf) ؛ } bos.close () ؛ bis.close () ؛ Conn.Disconnect () ؛ } catch (استثناء e) {E.PrintStackTrace () ؛ System.out.println ("رمي استثناء !!") ؛ } ملف الإرجاع ؛ } 3. فئة اختبار الكود (الوظيفة الرئيسية)
/** * param args */public static void main (string [] args) {String photourl = "https://ss0.bdstatic.com/5av1bjqh_q23odcf/static/superman/img/logo/bd_logo1_31bdc765.png" ؛ اسم ملف السلسلة = photourl.substring (photourl.lastindexof ("/")) ؛ //system.out.println("filename-->"+ filename) ؛ سلسلة filepath = "D:" ؛ ملف الملف = saveurlas (photourl ، filepath + filename ، "get") ؛ System.out.println ("Run OK!/n <br> الحصول على ملف url" + ملف) ؛ }ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.