• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Wczytywanie danych z pliku java

Object Storage Arubacloud
0 głosów
571 wizyt
pytanie zadane 9 maja 2019 w Java przez bastek Nowicjusz (190 p.)
Witam

Chcialbym zapytac o wczytywanie niesekwencyjne danych z pliku txt.Widzialem podobne tematy ale odpowiedzi konkretne nie padly lub padly niewyczerpujac tematu.

Chodzi o program ktory np posiada kilka funkcji menu.Moze zapisywac i wczytywac dane. I teraz dalej  plik powiedzmy sklada sie z kilkudziesieciu osob( do 100osob).Schemat zapisu imie i nazwisko danej osoby, pod spodem w pkt jej wydatki i suma wydatkow.I teraz w podmenu wczytaj z pliku moze wczytac caly plik i wydrukowac wszystkie zapisane osoby ale moze tez wyszukac dana osobe i informacje z nia zaawarte wydrukowac.Z racji menu sytuacja moze sie powtarzac  I teraz chodzi o sterowanie wskaznikiem z ktorego miejsca pobieramy.Bo oczywiscie przy readLine() lecimy linia po lini ale co gdy "przejedziemy" caly plik i chcemy wyszukac teraz konkretna osobe.

Teraz moje pytanie czy zostaje tylko klasa RandomAccessFile i wczytywanie po bajcie i przestawianie wskaznika czy jest mozliwosc przy pobieraniu linia po lini sterowanie nim.Chocby nawet ustawienie go na poczatku pliku/resetowanie czy na koncu?Zawsze w zasadzie pobieranie po znaku to jakies wyjscie ale chodzi mi cos ze strumieni znakowych

Czy ewentualnie wczytanie na poczatku calego pliku do tablicy String-ów i dopiero operowanie na niej?Jest to jakies rozwiazanie ale czy sluszne?

Pzdr

2 odpowiedzi

+1 głos
odpowiedź 10 maja 2019 przez mbabane Szeryf (79,280 p.)

Jest coś takiego:

https://docs.oracle.com/javase/8/docs/api/java/io/LineNumberReader.html

 

Może jakbyś pokazał jak ten plik wygląda tzn. po prostu wkleił go tutaj (lub jego część), to może ktoś by coś doradził.

Przeglądnij jeszcze jakieś biblioteki np. guave, albo apache-commons.

Tak jeszcze analizując twoją wypowiedź:

Bo oczywiscie przy readLine() lecimy linia po lini ale co gdy "przejedziemy" caly plik i chcemy wyszukac teraz konkretna osobe.

Nie wiem czy dobrze zrozumiałem, ale tutaj chyba założyłeś, że plik będzie raz otwierany przez cały cykl życia programu. Wydaje mi się, że to nie jest dobre. Jeśli plik nie jest w danej chwili potrzebny należy go zamykać. Za każdym razem kiedy będziesz odwoływał się do pliku będzie trzeba otwierać go na nowo więc zawsze będziesz zaczynał od początku pliku. 

0 głosów
odpowiedź 10 maja 2019 przez Arkadiusz Fajdek Dyskutant (9,450 p.)
Struktóra tego pliku wydaje sie słaba: wyadaje sie że jest przystosowana do tego aby człowiek mógł ją łatwo odczytać - ale program już nie bardzo, przez to tworzy się problem.

Czemu trzymasz te dane w pliku tesktowym? traktujesz to jako baza danych? Ty jesteś auterem tego pliku czy plik jest przygotowywany dla Ciebie?

Dane które trzymane są w plikach i trzeba je wgrać do systemu najlepiej się trzyma w pliakch CSV jest to format który bez problemu sobie w dowolny sposób przetworzysz.

Jeśli wymyślisz sobie nie wiadomo jaki plik tekstowy, to po ptorsu musisz napisać odpowiedni algorytm do przeszukiwania i wyciągania informacji - sam, musisz taki kawałek kodu napisać, nie znajdziesz nic z automatu.

Podobne pytania

0 głosów
1 odpowiedź 783 wizyt
0 głosów
1 odpowiedź 565 wizyt
pytanie zadane 30 lipca 2020 w PHP przez Bakkit Dyskutant (7,600 p.)
0 głosów
1 odpowiedź 1,516 wizyt

92,555 zapytań

141,402 odpowiedzi

319,539 komentarzy

61,938 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...