استرجاع السطر الأخير من ملف نصي كبير بكفاءة
عند التعامل مع ملفات نصية ضخمة، يعد استرداد السطر الأخير بكفاءة أمرًا بالغ الأهمية. يمكن أن يستغرق الوصول العشوائي وقتًا طويلاً بالنسبة للملفات الكبيرة، مما يجعله غير عملي. بدلاً من ذلك، فكر في هذه الحلول:
إرجاع السطر الأخير غير الفارغ:
تسترد وظيفة الذيل أدناه بسرعة آخر سطر غير فارغ من الملف دون تحميل أو اجتياز الملف بأكمله. يسعى إلى نهاية الملف ويقرأ الأحرف إلى الخلف حتى يواجه فاصل أسطر، ثم ينشئ ويعيد السطر الأخير.
public String tail(File file) { // ... for (long filePointer = fileLength; filePointer != -1; filePointer--) { // ... sb.append((char) readByte); } // ... }
إرجاع آخر N Lines:
إذا كنت بحاجة إلى آخر N Lines بدلاً من ذلك، فاستخدم وظيفة tail2. يستخدم تقنية مشابهة، لكنه يحسب فواصل الأسطر لتحديد الأسطر المطلوبة قبل عكس وإنشاء الإخراج.
public String tail2(File file, int lines) { // ... for (long filePointer = fileLength; filePointer != -1; filePointer--) { line = line 1; sb.append((char) readByte); } // ... }
الاستدعاء والاستخدام:
File file = new File("D:\\stuff\\huge.log"); System.out.println(tail(file)); System.out.println(tail2(file, 10));File file = new File("D:\\stuff\\huge.log"); System.out.println(tail(file)); System.out.println(tail2(file, 10));اعتبارات Unicode:
يستخدم التنفيذ عكس الأحرف لإعادة بناء الأسطر. على الرغم من فعاليته بشكل عام، إلا أنه قد يتسبب في حدوث مشكلات في عكس Unicode مع الأحرف مثل علامات التشكيل والقبعات. ولذلك، يعد الاختبار الشامل أمرًا ضروريًا قبل استخدام هذا النهج عبر اللغات المختلفة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3