Avatar billede quaid Nybegynder
08. december 2000 - 15:12 Der er 8 kommentarer

gem til en fil

Jeg har lavet program der skal gemme objecter i en fil. problemet er bare at den overskriver filen hvergang så gamle objecter er væk når man har gemt et nyt.
Findes der en måde hvorpå man kan få IO til at \"lægge på bunke\" i filen ?
Avatar billede mmp Nybegynder
08. december 2000 - 15:38 #1
Du skal inden du kommer så langt som til at gemme filen, læse den først, lægge det eksisterende til det der skal gemmes - og så har du jo det hele, og så kan den jo bare overskrive ligeså tosset den vil.
Avatar billede quaid Nybegynder
08. december 2000 - 15:49 #2
Ja, men hvis nu jeg bare vil kunne fylde mere ind i filen, kan jeg så bruge en eller anden sætning foran evt filnavn?
Sådan her er det lavetString File = \"info.dat\";
 
  try
  {
  FileOutputStream outFile = new FileOutputStream(File);
  ObjectOutputStream outStream = new ObjectOutputStream(outFile); 
  outStream.writeObject(barn);
  // her bør være et statement der lukker filen. outFile.close();
  }
  catch (FileNotFoundException exception) { System.out.println(exception); }
  catch (IOException exception) {System.out.println(exception);  }   
  catch (NoClassDefFoundError exception) {System.out.println(exception);  }
 
 
 
  System.out.println (barn);

Avatar billede codemon Nybegynder
08. december 2000 - 19:40 #3
Hej \"Quaid\" har du snakket med eksperten i klassen om det? Når I kører jeres endelige kpr (eller var det kdp) så vil de børn og institutioner der eksisterer i forvejen jo blive læst ind ved opstart.
Derfor fyldes der bare på ved tilmeldingerne og så kan, som mmp skriver, bare overskrive filen lige så tosset den vil.

Hilsen  codemon
Avatar billede quaid Nybegynder
09. december 2000 - 13:55 #4
HE HE, nu sidder jeg jo og tænker så det knager på hvem det kan være ??! Ja jeg har talt med experten her i klassen, og han var sikker på at det var en kommando der kunne administere det.
Der er egentligt ikke noget der direkte er påkrævet iflg. Specifikationen, men noget jeg selv gerne ville afprøve.
Ses imorgen HMHJ (tror jeg)
Avatar billede james_t_dk Juniormester
12. december 2000 - 11:01 #5
I C er der en append to end of file, men jeg aner ikke om den er i JAVA, det burde den dog være.
Avatar billede james_t_dk Juniormester
13. december 2000 - 07:38 #6
Jeg fandt dette svar, på en engelsk site:

Well,the following code appends at the end of a file but inserts a new line:

import java.io.*;
class test
{
public static void main(String[] args)
{
try
{
PrintWriter prt = new PrintWriter(new FileOutputStream (\"aa.dat\",true),true);
prt.println(\"appending at the end\");

}
catch(IOException e)
{
System.out.print(\"error\");
System.exit(1);
}
}
}
Avatar billede james_t_dk Juniormester
13. december 2000 - 07:39 #7
Så jeg vil sige at Quaid vist har fat i det helt rigtige!
Avatar billede lorgani Nybegynder
01. februar 2001 - 12:26 #8
Jeg er en begynder og vil gerne lave et servlet der kan skrive og læse fra og skrive til SQL database og
Jag kan ikke få mit servlet for at fungere jeg mener med hjælp af forms kan jeg ikke opdatere eller slet noget.
here coden:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(\"text/html\");
    PrintWriter out = new PrintWriter (response.getOutputStream());
    out.println(\"<html>\");
    out.println(\"<head><title>Fagbeskrivelse</title></head>\");
    out.println(\"<body bgcolor=\\\"#aaaaaa\\\">Hello From Fagbeskrivelse ()\");
    out.println(\"<p>Nu kommer tabellen: <table>\");
    out.println(
      \"<tr><td><h3>bogid</td><td><h3><A HREF=http://www.jubii.dk>Navnyy</td><td>\" +
      \"<h3>Forfatter</td><td><h3>Forlag</td><td><h3>Udgavedato</td><td><h3>Pris</td></h3></tr>\"
    );

    try{

    //  Class.forName(\"oracle.jdbc.driver.OracleDriver\");
      Class.forName(\"oracle.jdbc.driver.OracleDriver\");
      Connection con = DriverManager.getConnection(
                    \"jdbc:oracle:thin:@oracle:1521:student\",
                    \"stuk1147\", \"stuk1147\");

      CallableStatement s = con.prepareCall(\"SELECT bogid, navn, forfatter, forlag, udgavedato, pris FROM bog\");

      ResultSet rs = s.executeQuery();


      while (rs.next())
      {
        String bogid = rs.getString(\"bogid\");
        String navn = rs.getString(\"navn\");
        String forfatter = rs.getString(\"forfatter\");
        String forlag = rs.getString(\"forlag\");
        String udgavedato = rs.getString(\"udgavedato\");
        String pris = rs.getString(\"pris\");


        out.println(\"<tr><td>\"+bogid+\"</td><td>\"+navn+\"</td><td>\"+forfatter+\"</td><td>\"+forlag+\"</td><td>\"+udgavedato+\"</td><td>\"+pris+\"</td></tr>\");


      }
      out.println(\"</table> Slut på tabel\");
      String book = \"\";

      out.println(\"<h1>Indtast ny række</h1>\");
      out.println(\"<td><h3>bogid</h3><form name=bogid><input type=text name=bogid><input type=submit></form></td>\");
      out.println(\"<tr><td><h3>navn</h3></td><form name=navn><input type=text name=navn></form></td></tr>\");
      out.println(\"<tr><td><h3>forfatter</h3><form name=forfatter><input type=text name=forfatter></form></td></tr>\");
      out.println(\"<tr><td><h3>forlag</h3><form name=forlag><input type=text name=forlag></form></td></tr>\");
      out.println(\"<tr><td><h3>udgavedato</h3><form name=udgavedato><input type=text name=udgavesdato></form></td></tr>\");
      out.println(\"<tr><td><h3>pris</h3><form name=pris><input type=text name=pris><input type=submit></form></td></tr>\");

        String BogID = request.getParameter(\"BogID\");
        String navn = request.getParameter(\"navn\");
        String forfatter = request.getParameter(\"forfatter\");
        String forlag = request.getParameter(\"forlag\");
        String udgavedato = request.getParameter(\"udgavedato\");
        String pris = request.getParameter(\"pris\");
        book = (BogID + navn + forfatter + forlag + udgavedato + pris);

      if (book != null && book.length()>0) {
        CallableStatement s2 = con.prepareCall(\"INSERT INTO bog VALUES (book)\");
        s2.execute();
        out.println(\"<h2>Ny dag indsat!! \"+book+\"</h2>\");
      }


      // String forfatter = request.getParameter(\"navn\");
      if (forfatter != null && forfatter.length()>0) {
        CallableStatement s2 = con.prepareCall(\"INSERT INTO bog VALUES (7,\'akbar\',bjørn,ITD,1999,pris)\");
        s2.execute();
        out.println(\"<h2>Ny dag indsat!! \"+forfatter+\"</h2>\");
      }


    }
    catch (Exception e) {
      out.println(\"<h1>Fejl!</h1>\");
      out.println(\"Fejlen var:\"+e+\"<br><pre>\");
      e.printStackTrace(out);
      out.println(\"</pre>\");
      e.printStackTrace();
    }

    out.println(\"</body></html>\");
    out.close();
  }

  /**
  * Process the HTTP Post request
  */
  public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType(\"text/html\");
    PrintWriter out = new PrintWriter (response.getOutputStream());
    out.println(\"<html>\");
    out.println(\"<head><title>Fagbeskrivelse</title></head>\");
    out.println(\"<body>\");
    out.println(\"</body></html>\");
    out.close();
  }

  /**
  * Get Servlet information
  * @return java.lang.String
  */
  public String getServletInfo() {
    return \"Fagbeskrivelse Information\";
  }
}


Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester