मेरे पास 35GB CSVफाइल है। मैं प्रत्येक पंक्ति को पढ़ना चाहता हूं, और यदि यह एक शर्त से मेल खाता है, तो एक नए CSV को लाइन लिखें।
try (BufferedWriter writer = Files.newBufferedWriter(Paths.get("source.csv"))) {
try (BufferedReader br = Files.newBufferedReader(Paths.get("target.csv"))) {
br.lines().parallel()
.filter(line -> StringUtils.isNotBlank(line)) //bit more complex in real world
.forEach(line -> {
writer.write(line + "\n");
});
}
}
यह लगभग लेता है। 7 मिनट। क्या उस प्रक्रिया को और भी तेज करना संभव है?
parallelयह तेजी से हटाता है ? और चारों ओर लाइनों फेरबदल नहीं करता है?
BufferedWriter का उपयोग करके अपने आप को बनाएं , जो आपको बफर आकार सेट करने देता है। शायद एक बड़ा (या छोटा) बफर आकार एक फर्क पड़ेगा। मैं होस्ट ऑपरेटिंग सिस्टम बफर साइज़ को बफर साइज़ से मिलाने की कोशिश करूँगा । BufferedWriter