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

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

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

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

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

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

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

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

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

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

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

کارایی کد:

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

منبع:

https://dzone.com/

 


درباره فروغ مهرعلیان

محقق و پژوهشگر در شرکت مشاوران نرم‌افزاری اعوان

همچنین بررسی کنید

آشنایی با Lombok

Lombok ابزاری است که اخیرا توسط توسعه‌دهندگان جاوا به میزان زیادی استفاده می‌شود و کسانی …

۲ نظر

  1. CSV has comma separated items not lines
    col1,col2,col3
    ۱,۲,۳
    ۴,۵,۶
    ۷,۸,۹

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

       

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

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