Multidesk.be » Forums » Java » Een bestaand bestand wijzigen (gesloten)

Helpinformatie
Dit onderwerp bevindt zich in het archief.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door CyberOps op dinsdag 14 december 2004 om 19:50:19.
CyberOps' avatar
Multiviteit: 481
Error 404 - User not found.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Stel: je hebt een tekstfile met extentie *.dat en je wil het wijzigen (gewoon een lijn op het einde toevoegen) Hoe lukt dit zonder de bestaande zaken in de file te gaan overschrijven. M.a.w. zonder dat je programma de volledige file herschrijft en enkel jouw lijntje er inzet?

Deze methode had ik:

CODE
  1.  
  2. public void schrijfDaEensWeg(String woord, String omschrijving)
  3.     {
  4.         try
  5.                 {
  6.                         uitvoerBestandDAT = new PrintWriter(new BufferedWriter(new FileWriter(bestandsNaamDAT)));
  7.                         uitvoerBestandDAT.println(omschrijving);
  8.                         uitvoerBestandDAT.close();
  9.                 }
  10.                 catch (IOException ev)
  11.                 {
  12.                         System.err.println(\"Bestandsfout: \" + ev.toString());
  13.                         System.exit(1);
  14.                 }
  15.  
^ Reactie #1 geschreven door Slicer op dinsdag 14 december 2004 om 20:57:43.
Slicer's avatar
Multiviteit: 68
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
CODE
  1. public void schrijfDaEensWeg (String woord, String omschrijving) {
  2.     try {
  3.         uitvoerBestandDAT = new RandomAccessFile (bestandsNaamDAT, "rw");
  4.         uitvoerBestandDAT.seek (uitvoerBestandDAT.length());
  5.         uitvoerBestandDAT.writeChars (omschrijving + Sysem.getProperty ("line.separator"));
  6.         uitvoerBestandDAT.close ();
  7.     }
  8.     catch (IOException ev) {
  9.         System.err.println("Bestandsfout: " + ev.toString());
  10.         System.exit(1);
  11.     }
  12.  


de writers zijn sequentieel en moeten dus de bestanden altijd van voor naar achter doorlopen, met RandomAccessFile kan je echter verspring naar een bepaalde plaats in het document en dus ook naar het einde en dan schrijf je gewoon de string weg + de line separator voor het OS (r of rn of n)
^ Reactie #2 geschreven door CyberOps op woensdag 15 december 2004 om 15:20:32.
CyberOps' avatar
Multiviteit: 481
Error 404 - User not found.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
kheb dit gevonden (is eenvoudiger):

CODE
  1.  
  2. uittvoerBestandDAT = new PrintWriter(new BufferedWriter(new FileWriter(bestandsNaamDAT, true)));
  3.  


gewoon die true erbij zetten als 2de argument ;)
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten