Avatar billede x-masman Nybegynder
15. august 2002 - 10:57 Der er 7 kommentarer og
1 løsning

Skrive videre på en fil.

Jeg er i gang med at lave et mindre program, der skal læse noget fra en fil. Derefter skal den skrive det i anden fil. Men der står allerede noget og det skal stå efter dette. Hvordan gøres det?
Avatar billede x-masman Nybegynder
15. august 2002 - 10:58 #1
program:
import java.lang.*;
import java.io.*;

class Program{
  public double Program(String filename){
   
    try{
      FileReader inputFile = new FileReader(filename);
      FileWriter outputFile = new FileWriter(pfhdl.DAT)

      int nextChar = inputFile.read();
     
      while(nextChar != -1){
   
    if((char) nextChar == ";"){
      outputFile.write("↓");
    }
    else{
    outputFile.write(nextChar);
    }
   
    nextChar = inputFile.read();
      }

      outputFile.close();   
      inputFile.close();
   
    }
    catch(FileNotFoundException e){
      System.out.println("Invalid file");
    }
    catch(IOException e){
      System.out.println("Fail!");
    }
     
  }
}
Avatar billede x-masman Nybegynder
15. august 2002 - 10:58 #2
den tekst som den læser, skal stå lige før tail i denne tekst:

BEGINDATA
HEAD20020401
HDLOBLIFO000000004720020401DK0002005650020020401RN42180.7494.83060.000.001000000000000000047-40060.000000000000000047A2002040100000120020401008001DKK100DKK100DKK10042180.74
HDLOBLIFO000000004720020401DK0009261080020020401RN39961.5299.11059.41-394.141000000000000000047-40059.410000000000000047A2002040100000220020401008002DKK100DKK100DKK10039961.52
HDLOBLIFO000000004720020401DK0009920620020020401RN56072.1398.37082.74-841.851000000000000000047-56082.740000000000000047A2002040100000320020401008003DKK100DKK100DKK10056072.13
HDLOBLUFO000000004720020401SE0001332870020020401RN4040.50103.9106.30-244.111000000000000000047-3999.990000000000000047A2002040100001220020401008012DKK100SEK89.91DKK1004040.50
HDLAKTIFO000000004720020401DK0010197830020020401KS114.0087.2049.700000000000000047-9990.500000000000000047A2002040100001420020401008014DKK100DKK100DKK100114.00
HDLAKTIFO000000004720020401DK0010253330020020401KS46.00213048.990000000000000047-9846.990000000000000047A2002040100001620020401008016DKK100DKK100DKK10046.00
HDLAKTUFO000000004720020401AOL-US0020020401KS69.0018.0906.240000000000000047-10009.880000000000000047A2002040100004420020401008046DKK100USD797.95DKK10069.00
HDLAKTUFO000000004720020401BPA-L0020020401KS147.005.8504.300000000000000047-10032.040000000000000047A2002040100004520020401008045DKK100GBP1160.78DKK100147.00
HDLAKTUFO000000004720020401GE0020020401KS41.0030.1106.170000000000000047-9900.010000000000000047A2002040100004620020401008044DKK100USD797.95DKK10041.00
TAIL11
Avatar billede carstenknudsen Nybegynder
15. august 2002 - 11:04 #3
Du skal bare bruge:
FileWriter outputFile = new FileWriter("pfhdl.DAT",true);
så appender den istedet for at skrive forfra.
Avatar billede disky Nybegynder
15. august 2002 - 11:05 #4
x-masman:
Du skulle tage og studere API'en fra SUN, der står alle sådanne ting fint beskrevet :-)

Men carsten har helt ret
Avatar billede x-masman Nybegynder
15. august 2002 - 11:06 #5
ok. Kan jeg få det ind lige før TAIL?
Avatar billede carstenknudsen Nybegynder
15. august 2002 - 11:12 #6
Det vil være noget mere kompliceret.Du kan benytte
RandomAccessFile hvor metoderne length og seek kan
benyttes til at skrive midt i filen. Så skal du
tilgengæld vide præcis hvor meget den sidste linie
fylder.
Avatar billede x-masman Nybegynder
15. august 2002 - 11:17 #7
nå, ok. Jeg vælger bare at tilføj tail til sidst.

Tak for hjælpen!
Avatar billede carstenknudsen Nybegynder
15. august 2002 - 11:26 #8
Hvis du får lyst til at bruge RandomAccessFile så
vær opmærksom på at du overskriver tail og skal
derfor tilføje den til sidste efter dine andre
skriveoperationer.
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