In dit artikel zullen we verschillende manieren zien om in een bestand te schrijven met behulp van de Java-programmeertaal. De Java FileWriter-klasse in Java wordt gebruikt om tekengeoriënteerde gegevens naar een bestand te schrijven, aangezien deze klasse een tekengeoriënteerde klasse is vanwege wat deze wordt gebruikt bij het verwerken van bestanden in Java.
Er zijn veel manieren om in een bestand in Java te schrijven omdat er veel klassen en methoden zijn die het doel als volgt kunnen bereiken:
- Gebruik makend van schrijfString() methode
- FileWriter-klasse gebruiken
- BufferedWriter-klasse gebruiken
- FileOutputStream-klasse gebruiken
Methode 1: De methode writeString() gebruiken
Deze methode wordt ondersteund door Java versie 11. Deze methode kan vier parameters aannemen. Dit zijn het bestandspad, de tekenvolgorde, de tekenset en opties. De eerste twee parameters zijn verplicht om deze methode in een bestand te kunnen schrijven. Het schrijft de tekens als de inhoud van het bestand. Het retourneert het bestandspad en kan vier soorten uitzonderingen genereren. Het is beter om te gebruiken als de inhoud van het bestand kort is.
Voorbeeld: Het toont het gebruik van de schrijfString() methode die onder de klasse Files valt om gegevens naar een bestand te schrijven. Een andere klasse, Path, wordt gebruikt om aan de bestandsnaam een pad toe te wijzen waar de inhoud zal worden geschreven. De klasse Files heeft een andere methode genaamd leesString() om de inhoud te lezen van elk bestaand bestand dat in de code wordt gebruikt om te controleren of de inhoud correct in het bestand is geschreven.
Java
geheugen wisselen
// Java Program to Write Into a File> // using writeString() Method> // Importing required classes> import> java.io.IOException;> import> java.nio.file.Files;> import> java.nio.file.Path;> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > throws> IOException> > {> > // Assigning the content of the file> > String text> > => 'Welcome to geekforgeeks
Happy Learning!'> ;> > // Defining the file name of the file> > Path fileName = Path.of(> > '/Users/mayanksolanki/Desktop/demo.docx'> );> > // Writing into the file> > Files.writeString(fileName, text);> > // Reading the content of the file> > String file_content = Files.readString(fileName);> > // Printing the content inside the file> > System.out.println(file_content);> > }> }> |
>
>Uitvoer
sharwanand
Welcome to geekforgeeks Happy Learning!>
Methode 2: FileWriter-klasse gebruiken
Als de inhoud van het bestand kort is, is het gebruik van de FileWriter-klasse om in het bestand te schrijven een andere betere optie. Het schrijft ook de stroom tekens als de inhoud van het bestand, zoals de writeString()-methode. De constructor van deze klasse definieert de standaard tekencodering en de standaard buffergrootte in bytes.
Het volgende onderstaande voorbeeld illustreert het gebruik van de FileWriter-klasse om inhoud naar een bestand te schrijven. Om naar een bestand te schrijven, moet u het object van de FileWriter-klasse met de bestandsnaam maken. Vervolgens wordt de write()-methode gebruikt om de waarde van de tekstvariabele in het bestand te schrijven. Als er een fout optreedt op het moment dat het bestand wordt geschreven, wordt er een IOException gegenereerd en wordt de foutmelding afgedrukt vanuit het catch-blok.
Voorbeeld:
Java
// Java Program to Write into a File> // using FileWriterClass> // Importing required classes> import> java.io.FileWriter;> import> java.io.IOException;> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Content to be assigned to a file> > // Custom input just for illustration purposes> > String text> > => 'Computer Science Portal techcodeview.com'> ;> > // Try block to check if exception occurs> > try> {> > // Create a FileWriter object> > // to write in the file> > FileWriter fWriter => new> FileWriter(> > '/Users/mayanksolanki/Desktop/demo.docx'> );> > // Writing into file> > // Note: The content taken above inside the> > // string> > fWriter.write(text);> > // Printing the contents of a file> > System.out.println(text);> > // Closing the file writing connection> > fWriter.close();> > // Display message for successful execution of> > // program on the console> > System.out.println(> > 'File is created successfully with the content.'> );> > }> > // Catch block to handle if exception occurs> > catch> (IOException e) {> > // Print the exception> > System.out.print(e.getMessage());> > }> > }> }> |
>
>Uitvoer
File is created successfully with the content.>
Methode 3: BufferedWriter-klasse gebruiken
Het wordt gebruikt om tekst naar een tekenuitvoerstroom te schrijven. Het heeft een standaard buffergrootte, maar er kan een grote buffergrootte worden toegewezen. Het is handig voor het schrijven van tekens, tekenreeksen en arrays. Het is beter om deze klasse te combineren met een willekeurige schrijverklasse voor het schrijven van gegevens naar een bestand als er geen promptuitvoer vereist is.
Voorbeeld:
Java
binair naar bcd
// Java Program to write into a File> // Using BufferedWriter Class> // Importing java input output libraries> import> java.io.BufferedWriter;> import> java.io.FileWriter;> import> java.io.IOException;> // Main class> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Assigning the file content> > // Note: Custom contents taken as input to> > // illustrate> > String text> > => 'Computer Science Portal techcodeview.com'> ;> > // Try block to check for exceptions> > try> {> > // Step 1: Create an object of BufferedWriter> > BufferedWriter f_writer> > => new> BufferedWriter(> new> FileWriter(> > '/Users/mayanksolanki/Desktop/demo.docx'> ));> > // Step 2: Write text(content) to file> > f_writer.write(text);> > // Step 3: Printing the content inside the file> > // on the terminal/CMD> > System.out.print(text);> > // Step 4: Display message showcasing> > // successful execution of the program> > System.out.print(> > 'File is created successfully with the content.'> );> > // Step 5: Close the BufferedWriter object> > f_writer.close();> > }> > // Catch block to handle if exceptions occurs> > catch> (IOException e) {> > // Print the exception on console> > // using getMessage() method> > System.out.print(e.getMessage());> > }> > }> }> |
>
>Uitvoer
lente laars
File is created successfully with the content.>
In het volgende voorbeeld ziet u het gebruik van de klasse BufferedWriter om naar een bestand te schrijven. Het vereist ook het maken van het object van de BufferedWriter-klasse, zoals FileWriter, om inhoud in het bestand te schrijven. Maar deze klasse ondersteunt het schrijven van grote inhoud in het bestand door gebruik te maken van een grote buffergrootte.
Methode 4: FileOutputStream-klasse gebruiken
Het wordt gebruikt om onbewerkte stroomgegevens naar een bestand te schrijven. De klassen FileWriter en BufferedWriter worden gebruikt om alleen de tekst naar een bestand te schrijven, maar de binaire gegevens kunnen worden geschreven met behulp van de klasse FileOutputStream.
In het volgende voorbeeld wordt getoond hoe u gegevens naar een bestand schrijft met behulp van de FileOutputStream-klasse. Het vereist ook het maken van het object van de klasse met de bestandsnaam om gegevens naar een bestand te schrijven. Hier wordt de tekenreeksinhoud geconverteerd naar de byte-array die naar het bestand wordt geschreven met behulp van de schrijven() methode.
Voorbeeld:
Java
afdrukinstructie in Java
// Java Program to Write into a File> // using FileOutputStream Class> // Importing java input output classes> import> java.io.FileOutputStream;> import> java.io.IOException;> public> class> GFG {> > // Main driver method> > public> static> void> main(String[] args)> > {> > // Assign the file content> > String fileContent => 'Welcome to geeksforgeeks'> ;> > FileOutputStream outputStream => null> ;> > // Try block to check if exception occurs> > try> {> > // Step 1: Create an object of FileOutputStream> > outputStream => new> FileOutputStream(> 'file.txt'> );> > // Step 2: Store byte content from string> > byte> [] strToBytes = fileContent.getBytes();> > // Step 3: Write into the file> > outputStream.write(strToBytes);> > // Print the success message (Optional)> > System.out.print(> > 'File is created successfully with the content.'> );> > }> > // Catch block to handle the exception> > catch> (IOException e) {> > // Display the exception/s> > System.out.print(e.getMessage());> > }> > // finally keyword is used with in try catch block> > // and this code will always execute whether> > // exception occurred or not> > finally> {> > // Step 4: Close the object> > if> (outputStream !=> null> ) {> > // Note: Second try catch block ensures that> > // the file is closed even if an error> > // occurs> > try> {> > // Closing the file connections> > // if no exception has occurred> > outputStream.close();> > }> > catch> (IOException e) {> > // Display exceptions if occurred> > System.out.print(e.getMessage());> > }> > }> > }> > }> }> |
>
>Uitvoer
File is created successfully with the content.>