JAVA přepsání hodnoty prvku pole
Dobrý den,
pokouším se naprogramovat jednoduchý program v javě, ale sekl jsem se na jendom problému.
Ve třídě mám vytvořené pole s 10 prvky. Potřeboval bych přepsat jeden prvek pomocí metody, je to možné?
Díky, stanley777.
Jsi si jistý, že chápeš jak fungují pole?
Tak jsem si hodnoty dal do textového souboru na řádky.
Mám vytaženou hodnotu, kterou potřebuju přepsat ve stringu, akorát nevím jak na to.
stanley777
Načíst z txt, upravit a opět do txt zapsat se stejnou datovou strukturou jako původně.
EDIT: na čtení a zápis použít třídy BufferedReader a BufferedWriter.
Když jsem se to pokoušel přepsat, tak mi v souboru zůstal pouze text, kterým jsem chtěl přepsat jenom ten jeden řetězec.
Teď jsem se v tom ztratil a je z toho nějaká hatmatilka, kteerá nefunguje :/
stanley777
Musíš načíst úplně všechno a také úplně všechno zapsat. Texťáky nefungují tak, že načteš jen prostřední řádku a pak zapíšeš jen prostřední řádku - načíst vše, zapsat vše.
EDIT:
Můžeš si načíst celý texťák do pole (co řádka, to buňka v poli) a pak měnit hodnotu na příslušném místě a poté opět celé pole vypsat do texťáku (co buňka, to řádka).
Obě akce jsou velmi krátké cykly...
Zkusil jsem to s tím polem a nevypsal se mi žádný prvek, všechny byly null... :(
stanley777
Jak jsi to načítal a jak zapisoval?
Přepsal bych to na něco následujícího...
Nezapomeň, že pokud načítáš ze souboru a poté do něj chceš opět zapisovat, musíš ten čtecí buffer uzavřít PŘED TÍM, než začneš zapisovat. Po dokončení zápisu opět uzavřít zapisovací buffer.
Asi jsem to špatně napsal. Pro upřesnění: Potřebuji přepsat obsah pole např. s indexem [5].
Omlouvám se za nejasnosti. stanley777
Tak to je, jak napsal Wikan,
Třeba, pokud chceš vložit do indexu 5 číslo 22
Nezapomeň na to, že pole se čísluje od 0!
---------------
Mimo jiné..
Ty čísla si tam nějak musel dostat, ne?
Ano, dostal jsem to tam tak, že jsem si pole nadeklaroval.
Pro lepší orientaci sem vložím kód. Kdy použiju
tak nezůstane hodnota v poli stejná, zůstane jenom při zpuštěném programu...
Potřeboval bych, aby hodnota přepsala a zůstala tam napořád.
V tom případě by mělo být místo
toto:
Nebo se pletu?
Pokud chceš ty hodnoty měnit, tak je musíš mít uložené mimo program, třeba v textovém souboru. V samotném programu budou pořád stejné.
he? ma tam normalne pole a moze ho menit, dokial program bezi tak si to aj zmenene hodnoty zapamata. Nepastol sem cely program nevieme co presne tam vola a co presne mu nefunguje.
P.S. Aha sorry uz to vidim "zustane jenom pri zpustenem programu". No samozrejme ze pole v RAM zustane jen pri spustenem programu, ked to chce pamatat naveky tak to musi dat do suboru/databazy/niekam na disk.