دانستنی‌ها

چگونه یک فایل CSV بزرگ را با جاوا ۸ و جریان داده بخوانیم

سناریویی در نظر بگیرید که قصد دارید یک فایل csv بزرگ (در حدود ۹۰MB) را بخوانید و یک شئ جاوا برای هر خط آن بسازید. چگونه این کار به شکل عملی امکان‌پذیر است؟

فرض کنید که مسیر فایل csv را می‌دانید.

کد زیر فایل را می‌خواند و به ازای هر خط یک شئ جاوا می‌سازد.

توضیح بعضی از بخش‌های کد:

lines(): یک شئ جریان‌داده برمی‌گرداند.

skip(1): خط اول فایل csv را به عنوان خط عناوین در نظر گرفته و آن را نادیده می‌گیرد.

map(mapToItem): تابع mapToItem را برای هر خط از فایل فراخوانی می‌کند.

collect(Collector.toList()): یک لیست شامل تمام آیتم‌هایی که با mapToItem ساخته شده‌اند می‌سازد.

حالا تابع mapToItem به شکل زیر خواهد بود:

کارایی کد:

از تست‌های دستی که انجام گرفته به نظر می‌رسد خواندن یک فایل csv با حجم ۹۰ مگ با استفاده از راهی که در بالا گفته شد، ۷۰۰ میلی ثانیه در اکلیپس زمان می‌برد و احتمالا این مقدار در تولید بهتر هم خواهد بود.

منبع:

https://dzone.com/

نوشته های مشابه

‫۲ دیدگاه ها

    1. بله درسته، مشکل چیست؟
      در واقع هر سطر یک شئ است که در مثال شما صفات col1, col2, col3 برای آن شئ مقداردهی شده است.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا