Avatar billede djmaster Nybegynder
01. februar 2008 - 12:02 Der er 13 kommentarer og
2 løsninger

Tilføje en værdi til en txt fil (append)

Jeg har et program hvor jeg engang imellem modtager en værdi mellem 0-255.

Denne værdi vil have skrevet til en fil (append), men dette har jeg ikke haft held til, og har prøvet en del eksempler på nettet.

Har prøvet noget i denne stil:

Først oprettes et objekt
CreateTextFile application = new CreateTextFile();

Det sted i programmet hvor jeg modtager dataen(data er en int), skal data'en kalder jeg så skrives til filen:
    application.openFile();
    application.addDATA(data);
    application.closeFile();

Jeg har prøvet med en "Formatter" men kan ikke få den til at 'appende'. Når jeg lukkede programmet var det kun det sidste data der stod i filen.

Jeg har også prøvet med FileWriter og PrintWriter men får altid en fejl. Men det er nok mig der laver en fejl
Avatar billede dumbledore Nybegynder
01. februar 2008 - 12:35 #1
Denne kode virker i hvert fald: Den kan tilføje linier fra f.eks. et TextArea,

FileWriter fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            PrintWriter outFile = new PrintWriter(bw);
           
            String stringname = field.getText();
            outFile.println(""+stringname);
           
            outFile.close();
Avatar billede dumbledore Nybegynder
01. februar 2008 - 12:37 #2
hov glemte lige filnavnet (f.eks. fil.txt)
Det skal lige siges at det godt kan puttes ind i en try and catch;

String file = jt1.getText()+".txt";
           
            FileWriter fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            PrintWriter outFile = new PrintWriter(bw);
           
            String txt = jt2.getText();
            outFile.println(""+txt);
           
            outFile.close();


-- løsningen er jo så med dine værdier at du typecaster dem inden og efter, f.eks.
Avatar billede djmaster Nybegynder
01. februar 2008 - 13:02 #3
Jeg får stadig fejl.

Min klasse ser sådan ud:
import java.io.*;

public class FileWrite {
   
    FileWriter fw = new FileWriter("file.txt");
    BufferedWriter bw = new BufferedWriter(fw);
    PrintWriter outFile = new PrintWriter(bw);
 
    String stringname = "hej";
    outFile.println(""+stringname); 
    outFile.close();
}

På linjen: outFile.println(""+stringname); 
får jeg en fejl: Syntax error on token "println", = expected after this token

Jeg bruger et program der hedder Ecclipse til at programmere i.
Avatar billede arne_v Ekspert
01. februar 2008 - 15:42 #4
Du skal have puttet koden ind i en metode (formentligt en main metode) !
Avatar billede djmaster Nybegynder
01. februar 2008 - 16:20 #5
Kan man ikke lave det som en klasse der så evt har en constructor der tager en parameter feks. mine data, og gemmer det i en fil?
Avatar billede arne_v Ekspert
02. februar 2008 - 00:52 #6
Principielt jo, men det er ikke det som constructor's er beregnet til.
Avatar billede dumbledore Nybegynder
02. februar 2008 - 17:19 #7
prøv at sæt den ind en din main metode, som arne_v ganske rigtigt siger, - den virker i hvert fald her.
Avatar billede alex13 Nybegynder
03. februar 2008 - 13:22 #8
Hvis du gemmer objekter husk serializable...!
Avatar billede djmaster Nybegynder
04. februar 2008 - 11:21 #9
Nu for jeg ingen fejl længere, men jeg har ikke den ønskede funktionalitet.
For når jeg lukker programmet, så er det eneste jeg har i tekst filen nemlig det sidste data jeg modtog!

Min klasse ser sådan ud:

import java.io.*;

public class FileWrite {
   
   

public void skriv(int data) throws IOException
{
   
    FileWriter fw = new FileWriter("lala.txt");
    BufferedWriter bw = new BufferedWriter(fw);
    PrintWriter outFile = new PrintWriter(bw);
 
    String stringname = String.valueOf(data);
    outFile.println(""+stringname);
 
    outFile.close();
} // end void skriv

} // end class FileWrite
Avatar billede djmaster Nybegynder
04. februar 2008 - 12:47 #10
Ja jeg glemte selvfølgelig det vigtigste:


import java.io.*;

public class FileWrite {
 
 

public void skriv(int data) throws IOException
{
boolean t = true;
    FileWriter fw = new FileWriter("lala.txt", t);
    BufferedWriter bw = new BufferedWriter(fw);
    PrintWriter outFile = new PrintWriter(bw);

    String stringname = String.valueOf(data);
    outFile.println(""+stringname);

    outFile.close();
} // end void skriv

} // end class FileWrite

Men nu virker det efter hensigten. Jeg siger tak for hjælpen.

Så mangler jeg bare "svar"
Avatar billede djmaster Nybegynder
07. februar 2008 - 14:59 #11
Jeg lukker spørgsmålet om tre dage, så I må lige ligge et svar hvis I vil have point
Avatar billede alex13 Nybegynder
07. februar 2008 - 15:35 #12
Jeg er ikke helt på med nu hvad du vil have svar på ?
Avatar billede djmaster Nybegynder
07. februar 2008 - 15:42 #13
Egentlig også henvendt til arne_v og dumbledore. Da deres inputs hjalp mig til at løse problemet
Avatar billede arne_v Ekspert
07. februar 2008 - 15:49 #14
saa smider jeg et svar
Avatar billede dumbledore Nybegynder
12. februar 2008 - 11:18 #15
:)
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