تصف هذه المقالة عمليات قطع ودمج Java لتنفيذ ملفات كبيرة. شاركه للرجوع إليه ، على النحو التالي:
هنا ندرك قطع ودمج الملفات الكبيرة.
قطع بالرقم المحدد (مثل قطع ملف إلى 10 نسخ) أو قطع حسب الحجم المحدد (مثل الحد الأقصى لعدد كل نسخة لا يتجاوز 10 أمتار). كلتا الطريقتين على ما يرام.
هنا أنا فقط أكتب بعض التعليمات البرمجية الخاصة بك:
package io2 ؛ import java.io.file ؛ import java.io.fileInputStream ؛ import java.io.filenotfoundException ؛ import java.io.fileOutputStream ؛ java.Util.Enumeration ؛ استيراد javax.swing.jfilechooser ؛ ملفات الفئة العامة pilesplitdemo {/*** تحقيق قطع ودمج الملفات الكبيرة. قطع بالرقم المحدد (مثل قطع ملف إلى 10 نسخ) أو قطع حسب الحجم المحدد (مثل الحد الأقصى لعدد كل نسخة لا يتجاوز 10 أمتار). كلتا الطريقتين على ما يرام. *//public static void main (string [] args) {jfileChooser JFC = New JfileChoOoser () ؛ // حدد ملف في swing // حدد ملف int strep jfilechooser.approve_option) {// حدد ملف // cut file file = jfc.getselectedfile () ؛ // المستخدم المحدد ملف dest = file.getParent () ، "splifile") filename) ؛ // merge file}} catch (ioException e) {// todo catch catch blocke.printstacktrace () ؛}} private static void mergedemo (file dest ، string filename) يلقي iOexception {// stylustness protection (باستخدام كائن ملف لفتح) إذا موجود ") ؛} // استخدم صفيف ملف لتحميل جميع الملفات الموجودة في الداخل. جزء ملف [] = dest.listfiles () ؛ // إرجاع مجموعة من أسماء المسارات التجريدية ، تمثل أسماء المسارات هذه الملفات في الدليل الذي يمثله اسم المسار التجريدي. if (parth.length == 0) {رمي new runTimeException ("لا توجد شظية غير موجودة") ؛} // y استخدم تدفقات التسلسل لدمج arraylist <IndInputStream> list = new ArrayList <IbleInputStream> () ؛ ليس كذلك ، فإن الملفات المدمجة في ترتيب مضطرب //} لـ (int i = 0 ؛ i <partth.length ؛ i ++) {list.add (جديد fileInputStream (ملف جديد (Dest ، filename+ (i+ 1)+ "part")) ؛ collections.enumeration (قائمة) ؛ sequenceInputStream sq = new SequenceInputStream (en) ؛ // اكتب إلى ملف fileOutputStream fouteream fou foutputtream (ملف جديد (dest ، filename)) ؛ byte buf [] = new byte [1024] ؛ sq.read (buf) ؛ len) ؛} fou.close () ؛ sq.close () ؛} private static void cutfile (مصدر الملف ، مصير الملف) {// cut try {fileInputStream fis = new FileInputStream (source) ؛ if (! dest.exists ()) {// file stream io stream لتحديد الملف. dest.mkdir () ؛} byte buf [] = new byte [1024 * 1024] ؛ // 1mfis.read (buf) ؛ int len = 0 ؛ int cout = 1 ؛ (cout ++)+"part")) ؛ fout.write (buf ، 0 ، len) ؛ fout.close () ؛}} catch (fileNotfoundException e) {// todo acto catch blocke.printstacktrace () ؛} catch (ioexception e) {// to catch grate-generated ؛قطع الملفات: قطع ملف إلى قطع متعددة ، يجب ألا يتجاوز كل جزء من الشظية 1M في الحجم. يمكنك زيادة توسيع الوظيفة: اسم الملف ، الطول قبل القطع ، يمكن كتابة عدد القطع بعد القطع واسم الملف والمعلومات الأخرى إلى القطعة الأولى أو استخدام الخصائص لكتابة هذه إلى ملف التكوين.
دمج الملف: فيما يلي افتراض بسيط مفاده أن اسم كائن الملف والملف الأصلي المدمج معروفان. في الواقع ، هذه يمكن أن تكون على قيد الحياة تماما. إذا قمت بحفظ هذه المعلومات في ملف أو ملف تكوين مجزأ ، فيمكنك أيضًا استخدام مربع حوار تحديد الملف لقراءة اختيار المستخدم.
لمزيد من المعلومات حول خوارزميات Java ، يمكن للقراء المهتمين بهذا الموقع عرض المواضيع: "ملخص ملفات Java ومهارات تشغيل الدليل" ، "Tutorial on Java Data Hrustures and Algorithms" ، "ملخص لمهارات Java Operation DOM" و "ملخص مهارات تشغيل Java Cache".
آمل أن يكون هذا المقال مفيدًا لبرمجة Java للجميع.