बड़ी टेक्स्ट फ़ाइल की अंतिम पंक्ति को दक्षता के साथ पुनर्प्राप्त करना
बड़ी टेक्स्ट फ़ाइलों को संभालते समय, अंतिम पंक्ति को कुशलतापूर्वक पुनर्प्राप्त करना महत्वपूर्ण है। बड़ी फ़ाइलों के लिए रैंडम एक्सेस में समय लग सकता है, जिससे यह अव्यवहारिक हो जाता है। इसके बजाय, इन समाधानों पर विचार करें:
अंतिम गैर-रिक्त पंक्ति लौटाएं:
नीचे दिया गया टेल फ़ंक्शन किसी फ़ाइल की अंतिम गैर-रिक्त पंक्ति को बिना लोड किए तुरंत पुनर्प्राप्त करता है या संपूर्ण फ़ाइल को ट्रैस करना। यह फ़ाइल के अंत की तलाश करता है और वर्णों को पीछे की ओर पढ़ता है जब तक कि यह एक लाइन ब्रेक का सामना नहीं करता है, फिर अंतिम पंक्ति बनाता है और लौटाता है।
public String tail(File file) { // ... for (long filePointer = fileLength; filePointer != -1; filePointer--) { // ... sb.append((char) readByte); } // ... }
अंतिम एन पंक्तियां लौटाएं:
यदि आपको इसके बजाय अंतिम एन पंक्तियां चाहिए, तो टेल2 फ़ंक्शन का उपयोग करें। यह एक समान तकनीक का उपयोग करता है, लेकिन यह आउटपुट को उलटने और निर्माण करने से पहले वांछित लाइनों को निर्धारित करने के लिए लाइन ब्रेक की गणना करता है।
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));
यूनिकोड विचार:
कार्यान्वयन लाइनों के पुनर्निर्माण के लिए कैरेक्टर रिवर्सल का उपयोग करता है। आम तौर पर प्रभावी होते हुए भी, यह उच्चारण और टोपी जैसे वर्णों के साथ यूनिकोड उलट समस्याओं का कारण बन सकता है। इसलिए, विभिन्न भाषाओं में इस दृष्टिकोण का उपयोग करने से पहले गहन परीक्षण आवश्यक है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3