seek RandomAccessFile Problem ze wskaźnikiem

0

Witajcie, mam problem z ustawieniem wskaźnika, żeby String był dopisywany na końcu listy: mam metodę:

try (RandomAccessFile tempFile = new RandomAccessFile(plik.dat, "rw")) {
tempFile.writeUTF(temp.getText());
} catch (IOException e) {
		e.printStackTrace();
}

I kolejne Stringi są zapisywanie po prostu na siebie.

Wcześniej miałem coś takiego:

try (RandomAccessFile tempFile = new RandomAccessFile(plik.dat, "rw")) {
for(int i = 0; i < ilosc-1; i++) {
	tempFile.writeUTF(listaWzrazow.get(i));
}
} catch (IOException e) {
	e.printStackTrace();
}

I wszystko działało jak należy. Ale to rozwiązanie jest błędne, bo potrzebuje wpisywać wyraz klikać dalej i on się będzie zapisywał do plik.dat, potem wpisuje natępny i znów klikam zapiszNastępny wywołując pierwszą metodę i zapisuje mi kolejny do pliku, później z pliku muszę wczytać do tablicy, ale to już nie ma problemu. Problemy mam z tym wskaźnikiem.

0

No więc tak, mam okienko w które wpisuje wyraz i klikam "następny" i ten wpisany już wyraz zostaje zapisany do pliku plik.dat, potem kolejny potem kolejny itd. W plik.dat mają się znajdować wyrazy z TextField które później wczytam do tablicy i tyle.
Najpierw robiłem to tak: pobierałem te wyrazy i wsadzałem je do klasy List i później całą klasę (tzn Stringi) wsadziłem do plik.dat od razu w pętli i tam nie potrzeba żadnego wskaźnika, bo po prostu działa. Ale powinienem od razu bezpośrednio dodawać wyraz do plik.dat, od razu przy kliknięci następny.

Czyli wyraz w TextField > klik > wyraz do plik.dat, i potem znów: wyraz w TextField > klik > wyraz do plik.dat.
Później te wszystkie n wyrazów zapisać z pliku.dat do tablicy i tyle.

Ale problem mam taki, że wyraz kolejny zapisuje mi się na początku pliku nadpisując poprzedni, a nie potrafię tego wskaźnika ustawić.

0

Problem rozwiązany, po prostu za każdym razem tworzyłem od nowa obiekt RandomAccessFile, teraz tworzę go raz przy inicjalizacji. Przepraszam za śmieć na forum.

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