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?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
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!"); } } }
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
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.
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
15. august 2002 - 11:06
#5
ok. Kan jeg få det ind lige før TAIL?
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.
15. august 2002 - 11:17
#7
nå, ok. Jeg vælger bare at tilføj tail til sidst. Tak for hjælpen!
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.
Kurser inden for grundlæggende programmering