Voiko tiedoston luoda ilman että luokassa jossa tiedosto luodaa ja sinne viedään tavaraa on public static void main(String[]args) ?
Tuli vaan eteen kun teen JSP sivuja MVC:n mukaan ja haluaisin testata talletusta tiedostoon ennen tietokanna tekemistä. Tuntuu vaan että tuo pitää olla siinä? Tietoa kellään? Oli aika epäselvä kysymys...
Tuli vaan eteen kun teen JSP sivuja MVC:n mukaan ja haluaisin testata talletusta tiedostoon ennen tietokanna tekemistä. Tuntuu vaan että tuo pitää olla siinä? Tietoa kellään? Oli aika epäselvä kysymys...
Vastaukset 9
Vanhimmat
Tiedostoon kirjoittamista ei useimmiten kannata laittaa main-metodiin. Tee sitä varten oma metodi. Mitä aiot testata tiedostoon kirjoittamisella? Se vaatii ihan erilaisen koodin kuin sql:llä tauluun tallettaminen. Koodin toimivuutta relaatiotietokantaan tallettamista varten ei oikein voi testata tiedostoon kirjoittamisella. (Vaikka oikeastaan sql:n inserttikin on tiedostoon kirjoittamista)
Tiedoston käsitttely on ihan omassa metodissaan ja tiedän että se on aivan erilaista kuin sql:ssä tauluun vieminen. Se tässä ei ole ongelma. Vien vain objektin tiedotoon joka saa parametrit JSP sivulta. MUTTA...kun kutsun metodia jossa on tiedostoon tallettaminen
Vähän tähän tyylii...
public void talletaTied(Object o)
{
...................tavaraa..........
ObjectOutputStream str = new ObjectOutputStream(new FileOutputStream("joo.dat"));
str.writeObject(o);
str.close();
}
Se ei tee tuota joo.dat eikä kirjoita mitää...eli mikä mättää....
ja toimi ihan ok. Printtaas catchissä virheet ulos. Jos vaikka ei oo oikeuksia luodas tiedostoa tms.
str.writeObject(o); -rivin jälkeen pitäisi kutsua flush-metodia:
str.flush();
Mun mielestä close() sisältää flush():n speksin mukaan. Tosin olen joskus huomannut aiemminkin, ettei speksi ja toteutus aina kohtaa.
Eikös se close() aja saman asian. Mut laitoin sen flush() kans mut ei toiminu. Kohta joutuu kyllä heittää pyyhkeen kehään.
OK, täytyy kokeilla. Entä seuraava: MItä virhe 'ClassCastException: JokuBean' virhe JSP sivulla meinaa.
Kaikki importit ja nimeäminen on ok, en tiedä mikä mättää.
JSP- sivulla list.jsp koodia esim: haku vektorista:
Yrität castata jotain objectia jotai ei voi castata toiseksi. SAma virhe tulis esim. kait tästä.
String mukaluku = "12345678";
int luku = (int)mukaluku;
Eli et voi castata stringiä kokonaisluvuksi. Pitää käyttää jotain int luku = new Integer(mukaluku);
Eli kissasta ei välttämättä saa koiraa vaan että laittaa koira = (koira)kissa;
Jos se sun beanis on ihan joku omituinen, nii voi voi.
Ton kyllä tiedän mut ei siin beanis oo mitää ihmeellistä.
Beani on ihan vaan kolmen muuttajan get/set hässäkkä, ei mitn muuta. Mutta vaikuttaako se jos beani toteuttaa Serializable rajapinna??? eli: class Oma implements Serializable???