wczytywanie pliku wątki

0

Witam,

Mam taki problem, otóż mam do wczytania plik txt w którym zawarte są dane liczbowe. W pliku tym jest ok. 157 tys linii po 3 kolumny. Moim zadaniem jest wczytanie tych wartości. Czy ktoś z mądrych i doświadczonych ludzi mógłby mi odpowiedzieć jak najlepiej zrealizować to wczytywanie, tak aby czas ztablicowania tych wartości był w miarę krótki.

Aktualnie próbuje to wczytywać i tablicować za pomocą jednej metody. czas ok 3min.
Natomiast gdy plik podzieliłem na 2 mniejsze txt i wykonywałem wczytywanie to czas wyniósł ok 3,5 min.

Wydaję mi się że wczytując w dwóch wątkach teoretycznie czas powinien być krótszy. Prosiłbym o jakieś informację jak to szybko wczytywać.

0

Wszystko rozbija się o kontroler dysku. Wąskie gardło POZA JVM i poza twoją kontrolą. Podział pliku na dwa spowodował wydłużenie czasu wczytywania ponieważ system musiał udostępniać dwa pliki, ale na raz może udostępniać tylko jeden. Pojawił się narzut związany z przełączaniem pomiędzy plikami.
Metodą, która może okazać się ty całkiem niezła jest trochę inne podejście do transformowania danych. Wczytaj plik jako tablicę bajtów za pomocą FileChannel. A zresztą: http://nadeausoftware.com/articles/2008/02/java_tip_how_read_files_quickly fajne porównanie róznych metod czytania plików. Na końcu wykresy.

0

Miałem kiedyś podobny problem tylko że w moim przypadku dochodziło jeszcze rodzaj zapisu bajtów (little i big endian).

Koziołek ma rację....

Ja wczytałem swój plik FileInputStream-em i wrzuciłem wszystkjo do tablicy bajtowej.

Później będziesz musiał odczytać po 8 bajtów a tutaj polecam ByteBuffer.allocate()

0

dzięki wielkie za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1