انجام عملیات روی فایل حجیم csv

sadena

عضو جدید
انجام عملیات روی فایل حجیم csv

سلام دوستان.
من یک فایل csv دارم و می خوام این فایل را توی جاوا بخونم و روش یکسری query اجرا کنم .مشکل اولم اینه که این فایل خیلی خیلی حجیمه و موقع اجرا eclips هنگ می کنه و پیغام میده من کد زیر را که میانگین گرفتن ساده از سومین عنصر هر ردیف هست، روی یک فایل کوچیک امتحان کردم و جواب گرفتم ولی نمی دونم چه طور می تونم مشکل حافظه را حل کنم .
ممنون می شم اگر هر چه زود تر راهنمایی کنید.
تا الان فهمیدم که می شه از hashmap یا بافر استفاده کرد ولی نحوه اصلاح کد را بلد نیستم
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;


public class Mu {

public void Computemu()
{
String filename="testdata.csv";//I should change it to BX-Book-Rating later
File file=new File(filename);
try {
Scanner inputstream=new Scanner(file);//Scanner read only string
// String data=inputstream.next();//Ignore the first line(header)
double sum=0;
double numberOfRating=0;

while (inputstream.hasNext())
{
String data=inputstream.next();//get a whole line
String[] values= data.split(";");//values separate by;
double rating=Double.parseDouble(values[2].replaceAll("\"", ""));//change value to string
if(rating>0)//do not consider implicit ratings
{
sum+=rating;
numberOfRating++;
}
}
inputstream.close();
System.out.println("Mu is"+ (sum/numberOfRating));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

}

}
منتظر راهنمایی شما هستم :)
 

Similar threads

بالا