Java FileOutputStream-klasse: Uitgebreide gids
Java FileOutputStream-klasse
Deze tutorial doorloopt de Java FileOutputStream-klasse, de constructors, kernmethoden en praktische voorbeelden.
De FileOutputStream-klasse, onderdeel van het java.io-pakket, stelt je in staat om rauwe bytedata naar bestanden te schrijven. Het breidt de abstracte OutputStream-klasse uit en is essentieel voor binaire bestandsoperaties.
Een FileOutputStream aanmaken
Om een FileOutputStream aan te maken, importeer de klasse uit java.io en instantieer het met een bestandspad of een File-object.
1. Met een bestandspad
// Met append-vlag
FileOutputStream output = new FileOutputStream(String pad, boolean append);
// Zonder append-vlag
FileOutputStream output = new FileOutputStream(String pad);
De append-boolean bepaalt of data aan het einde van het bestand wordt toegevoegd (true) of bestaande inhoud overschrijft (false).
2. Met een File-object
FileOutputStream output = new FileOutputStream(File bestandObject);
Deze constructor koppelt de stream aan het bestand vertegenwoordigd door bestandObject.
Kernmethoden van FileOutputStream
FileOutputStream implementeert verschillende geërfde methoden van OutputStream, elk afgestemd op byte-operaties.
write()
write(int b)– schrijft een enkele bytewrite(byte[] b)– schrijft een volledige byte-arraywrite(byte[] b, int off, int len)– schrijftlenbytes uitbbeginnend bij offsetoff
Voorbeeld: Tekst naar een bestand schrijven
import java.io.FileOutputStream;
public class Main {
public static void main(String[] args) {
String data = "Dit is een regel tekst in het bestand.";
try {
FileOutputStream output = new FileOutputStream("output.txt");
byte[] array = data.getBytes();
output.write(array);
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
Dit programma creëert output.txt met de bovenstaande zin. De getBytes()-methode converteert de string naar de UTF-8-byterepresentatie.
flush()
De flush()-methode dwingt gebufferde bytes om direct naar het bestand geschreven te worden. Het is nuttig wanneer je moet garanderen dat data persistent is voordat je de stream sluit.
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException {
FileOutputStream out = new FileOutputStream("flush.txt");
String data = "Dit is demo van flush-methode";
out.write(data.getBytes());
out.flush();
out.close();
}
}
close()
Na het aanroepen van close() is de stream niet meer bruikbaar. Het geeft systeembronnen vrij en zorgt ervoor dat het bestandshandle correct wordt vrijgegeven.
Extra FileOutputStream-methoden
| Methode | Beschrijving |
|---|---|
finalize() | Wordt aangeroepen door de garbage collector om close() te garanderen |
getChannel() | Retourneert de geassocieerde FileChannel voor geavanceerde bestandsoperaties |
getFD() | Haalt de onderliggende bestandsdescriptor op |
Voor dieper inzicht, raadpleeg de officiële Java FileOutputStream-documentatie.
Java
- Java's final-sleutelwoord begrijpen: variabelen, methoden en klassen
- Java instanceof operator: een uitgebreide gids
- Java-erfenis meesteren: concepten, typen en praktische voorbeelden
- Java geneste static classes begrijpen: gebruik, verschillen en voorbeelden
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Singleton patroon uitgelegd: hoe veilig te implementeren en gebruiken
- Java Reflectie meesteren: klassen, methoden en velden inspecteren tijdens runtime
- Java ArrayList meesteren: operaties, methoden en best practices
- Java ObjectOutputStream: Serialisatie, methoden en praktische voorbeelden
- Java Generics: Herbruikbare, type-veilige code bouwen
- Java-bestandsbewerkingen onder de knie krijgen met java.io – Aanmaken, lezen, schrijven en verwijderen