Avatar billede dennish Nybegynder
01. december 2003 - 17:07 Der er 9 kommentarer og
1 løsning

RandomAccessFile, hvordan skrive til en fil

Hvordan laver jeg noget koder der bruger RandomAccessFile. Sagen er nemlig den at jeg har en fil, hvis indhold jeg skal overskrive og så skal jeg jo bruge RandomAccessFile,.

Har følgende kode som IKKE virker:

    public void writeFile(Vector dna)
    {
        try
        {   
           
           
            RandomAccessFile file = new RandomAccessFile( "gene_pool", "rw" );
              StringBuffer buffer = new StringBuffer();
           
            for( int i = 0; i < dna.size(); i++ )
            {
               
                    file.write(????????????)
                    //file.write((char)buffer.get());
            }
        }
       
        catch(FileNotFoundException fnf)
        {
            System.out.println(fnf);
        }
        catch(IOException e)
        {
            System.out.println(e);           
        }
    }
   
    /*  Vector dna indeholder objekteterne af Typen Test
    *
    *
    **/
   
   
    Public class test
    {
        public String info;
       
        public getInfo();
        {
            return.info;    
        }   
       
   
    }
Avatar billede arne_v Ekspert
01. december 2003 - 17:49 #1
Dun skal bruge RandomAccessFile hvis du vil lave random access.

Enhver output stream kan da overskrive en eksisterende fil.
Avatar billede arne_v Ekspert
01. december 2003 - 17:51 #2
Men ellers vil jeg tror, at det er:

file.write(buffer.toString().getBytes());

du leder efter.
Avatar billede arne_v Ekspert
01. december 2003 - 17:52 #3
Næh - den er jo tom.

Du skal have pillet noget ud af din Vector og skrevet.

Hvad indeholder den ?
Avatar billede dennish Nybegynder
01. december 2003 - 18:00 #4
Vectoren indeholder objekter af typen test.
det er selvføglelig også en setInfo() metoder i klassen test, der har sat strengen info
Avatar billede dennish Nybegynder
01. december 2003 - 18:08 #5
øhh hvordan sørger jeg for at file.write() skriver de stringe jeg har pille ud af mine objekter i Vectoren
Avatar billede arne_v Ekspert
01. december 2003 - 18:12 #6
Hvis vi nu forestiller os at din Vector indeholder objekter af type test og
at du har en toString metode der kan give dig en String, så kan du bruge:

          for( int i = 0; i < dna.size(); i++ )
            {
             
                    file.write(((Test)dna.get(i)).toString().getBytes());
            }
Avatar billede arne_v Ekspert
01. december 2003 - 18:13 #7
Og medmindre du har brug for random access så brug FileOutputStream.
Avatar billede dennish Nybegynder
01. december 2003 - 20:01 #8
arne smid lige et svar. Hvorfor FileOutputStream istedet for RandomAccessFile. hvad er da bedst
Avatar billede arne_v Ekspert
01. december 2003 - 20:03 #9
svar
Avatar billede arne_v Ekspert
01. december 2003 - 20:04 #10
FileOutputStream er bedst medmindre du har brug for RandomAcessFile's
specielle egenskaber (at du kan skrive lidt i slutningen af filen, for at gå
tilbage og skrive i begyndelsen af filen, hoppe til midt i, ...)
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