Eli ongelma on sellainen että on ohjelma joka tekee jäsenrekisteriä. No sehä ei ole tietysti ongelma mutta kun ohjelma lukee ne arraylistiin jolloin kaikki jäsenrekisterin tiedot menee hukkaan kun ohjelma sammutetaan. Onko mitenkään mahdollista siirtää arraylistin tietoja vaikka tekstitiedostoon?
Kuinka Arraylist tiedostoon?
SL55
51197
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 5
Vanhimmat
Joo tottakai on mahdollista.
try
{
PrintWriter out = new PrintWriter (new FileWriter("tekstitiedosto.txt"), true);
for (int i = 0; i < taulukko.length; i )
{
out.println(taulukko[i]);
}
out.close ();
}
catch (IOException e)
{
e.printStackTrace ();
}
FileOutputStream fos = new FileOutputStream("jasenrekisteri.arraylist");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(jasenrekisteri);
oos.close();
Tässä tietty menetetään mahdollisuus tutkia tiedostoa tekstieditorilla. Mutta onpahan ainakin helppo tallentaa ja lukea...
sitten vastaavalla FileInputStreamilla. Koodi menee muuten melkeen samaan tapaan. Kannattaa tarkistaa APIsta sen FileInputStreamin metodit.
Varmaan jotain tyyliin:
ArrayList list = (ArrayList)ois.readObject();
Kokeilin tälläista:
public void kirjoitaTiedostoon(){
try{
PrintWriter tulos = new PrintWriter(new FileOutputStream("jasenluettelo.txt"),true);
tulos.print(tulostaJasentiedot());
tulos.close(); }
catch (FileNotFoundException e){
System.out.println("\nOngelmia tiedostoon kirjoituksessa! }
}
Mikä minulla on väärin tuossa metodissa kun editori (Eclipse) ilmoittaa että: The method print (char) in the type Printwriter is not applicable for the arguments (void)
tuossa tulos.print(tulostaJasentiedot()); rivillä
Onko sinulla metodi public void tulostaJasentiedot() ? PrintWriterilla on luokassa aika monta metodia nimeltään write. Metodin tulostaJasentiedot() pitäisi palauttaa jokin olio, joka sopii jollekin write()-metodille. Siis esim public String tulostaJasentiedot().
Mielestäni tuo tulostaJasentiedot() on vähän turha. Tee tulostussilmukka ihan rohkeasti tuohon kirjoitaTiedostoon() metodiin. Jos haluat yleiskäyttöisyyttä, anna tulostettava ArrayList ja kohdetiedosto argumentteina metodille, esim. kirjoitaTiedostoon(ArrayList lista, String tiedostonimi).