আমার কাছে 35 জিবি 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বাফার আকারটি হোস্ট অপারেটিং সিস্টেম বাফার আকারের সাথে মিলিয়ে দেখার চেষ্টা করব ।