Java tiedoston käs.

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...
9387
Äänestä

Muut lukivat myös

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)

Äänestä
  • 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ää....

    Äänestä

  • ongelma kirjoitti:

    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.

    Äänestä

  • ongelma kirjoitti:

    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ää....

    str.writeObject(o); -rivin jälkeen pitäisi kutsua flush-metodia:

    str.flush();

    Äänestä

  • Time is on My Side kirjoitti:

    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.

    Äänestä

  • Time is on My Side kirjoitti:

    str.writeObject(o); -rivin jälkeen pitäisi kutsua flush-metodia:

    str.flush();

    Eikös se close() aja saman asian. Mut laitoin sen flush() kans mut ei toiminu. Kohta joutuu kyllä heittää pyyhkeen kehään.

    Äänestä

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:

Äänestä
  • 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.

    Äänestä

  • Piru kirjoitti:

    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???

    Äänestä

Kommentoi aloitusta


ongelma kirjoitti:

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...

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu