Skrivning af filer i Java (med eksempler)
CreateNewFile()-funktionen i Java kan oprette en fil. Denne metode producerer en boolesk værdi:sand, hvis filen blev fuldført med succes, falsk, hvis den allerede eksisterer. Som du kan se, er proceduren indkapslet i en try...catch-blok. Det er påkrævet, fordi en IOException udløses, hvis der opstår en fejl. For eksempel hvis filen af en eller anden grund ikke kan oprettes.
import java.io.File; import java.io.IOException; public class CreateFile { public static void main(String[] args) { try { File newObj = new File("codeunderscored.txt"); if (newObj .createNewFile()) { System.out.println("File created: " + newObj.getName()); } else { System.out.println("File already exists."); } } catch (IOException e) { System.out.println("An error occurred."); e.printStackTrace(); } } }
For at oprette en fil i en bestemt mappe (som kræver tilladelse), skal du angive filens sti og undslippe tegnet "\" med dobbelte omvendte skråstreg (til Windows). På Mac og Linux skal du indtaste ruten, såsom /Users/name/codeunderscored .txt.
import java.io.File; import java.io.IOException; public class CreateFileDir { public static void main(String[] args) { try { File newObj = new File("Users/Code\\codeunderscored.txt"); if (newObj .createNewFile()) { System.out.println(" Created file: " + newObj.getName()); System.out.println("Absolute path: " + newObj.getAbsolutePath()); } else { System.out.println("File is already there."); } } catch (IOException e) { System.out.println("An error occurred."); e.printStackTrace(); } } }
Sådan skriver man til en fil
FileWriter-klassen og dens write()-metode bruges i følgende eksempel til at skrive noget tekst til den fil, vi oprettede tidligere. Det er vigtigt at huske, at når du er færdig med at skrive til filen, skal du lukke den med close()-metoden:
import java.io.FileWriter; import java.io.IOException; public class WriteToFile { public static void main(String[] args) { try { FileWriter newWriter = new FileWriter("codeunderscored .txt"); newWriter.write("Writing to files in Java is easy peasy!"); newWriter.close(); System.out.println("Completed writing to the file."); } catch (IOException e) { System.out.println("An error occurred."); e.printStackTrace(); } } }
Brug af BufferedWriter Class
BufferedWriter er en klasse, der giver dig mulighed for at skrive bufret tekst. Det bruges til at oprette en karakteroutputstrøm fra teksten. Tegn, strenge og arrays kan alle skrives med det. Den har en standard bufferstørrelse; den kan dog ændres til stor bufferstørrelse. Hvis der ikke kræves promptoutput, er det at foretrække at indkapsle denne klasse med en hvilken som helst writer-klasse for at skrive data til en fil.
// Program for writing 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 BufferedWriterClass { public static void main(String[] args) { // Assigning the file content as input to illustrate String text = "Welcome to Codeunderscored "; // Try block to check for exceptions try { // Create a BufferedWriter object BufferedWriter bfWriter = new BufferedWriter(new FileWriter( "/Users/Code/Desktop/underscored.docx")); // Writing text to the file bfWriter.write(text); // Printing file contents System.out.print(text); // Display message showcasing program execution success System.out.print( "content added to file successfully"); // Closing the BufferedWriter object bfWriter.close(); } // Catch block for handling exceptions that occur catch (IOException e) { // Printing the exception message on the console System.out.print(e.getMessage()); } } }
Brug af FileOutputStream-klassen
BufferedWriter-klassen bruges til at skrive til en fil i dette eksempel. Men fordi denne klasse har en stor bufferstørrelse, kan den skrive enorme mængder data ind i filen. Det nødvendiggør også oprettelsen af et BufferedWriter-objekt, såsom FileWriter, for at skrive indhold ind i filen.
Det bruges til at gemme ubehandlede streamdata til en fil. Kun tekst kan skrives til en fil ved hjælp af FileWriter- og BufferedWriter-klasserne, men binære data kan skrives ved hjælp af FileOutputStream-klassen.
Følgende eksempel viser, hvordan du bruger FileOutputStream-klassen til at skrive data til en fil. Det nødvendiggør også oprettelsen af et klasseobjekt med filnavnet for at skrive data til en fil. Indholdet af strengen transformeres til et byte-array, som derefter skrives til filen ved hjælp af write()-metoden.
// Program for Writing to a File using the FileOutputStream Class import java.io.FileOutputStream; import java.io.IOException; public class WriteUsingFileOutputStream { public static void main(String[] args) { // Assigning the file contents String fileContent = "Codeunderscored extravaganza "; FileOutputStream outputStream = null; // Try block to check if exception occurs try { // Creating an object of the FileOutputStream outputStream = new FileOutputStream("underscored.txt"); // Storing byte contents from the string byte[] strToBytes = fileContent.getBytes(); // Writing directly into the given file outputStream.write(strToBytes); // Printing the success message is optional System.out.print( "Content added to File successfully."); } // Catch block handling the exceptions catch (IOException e) { // Showing the exception/s System.out.print(e.getMessage()); } // use of the finally keyword with the try-catch block – to execute irregardless of the // exception finally { // object closure if (outputStream != null) { // Second try catch block enforces file closure // even if an error happens try { // file connections closure // when no exception has happen outputStream.close(); } catch (IOException e) { // shows exceptions that are encountered System.out.print(e.getMessage()); } } } } }
WriteString()-funktionen
Version 11 af Java understøtter denne tilgang. Fire parametre kan overføres til denne metode. Filplacering, tegnsekvens, tegnsæt og muligheder er alle disse. De første to parametre er nødvendige for at denne metode kan skrive til en fil. Det gemmer tegnene som filens indhold. Det returnerer stien til filen og kan kaste fire forskellige typer undtagelser. Når filens indhold er kort, er det bedst at bruge det.
Det demonstrerer, hvordan man sætter data ind i en fil ved hjælp af funktionen writeString() fra klassen Files. En anden klasse, Path, bruges til at knytte filnavnet til destinationsstien for indholdet.
ReadString()-funktionen i klassen Files læser indholdet af enhver eksisterende fil. Koden bruger så sidstnævnte til at sikre, at teksten er korrekt skrevet i filen.
// Program for Writing Into a File using the writeString() Method import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; // Main class public class WriteStringClass { public static void main(String[] args) throws IOException { //file content assigning String text = "Codeunderscored extravaganza!"; // definition of the file' name Path fileName = Path.of( "/Users/Code/Desktop/undercored.docx"); // Writing into the file Files.writeString(fileName, text); // Read file contents String fileContent = Files.readString(fileName); // Printing the files' content System.out.println(fileContent); } }
Konklusion
Java FileWriter-klassen bruges til at skrive tegnorienterede data til en fil. Det er en karakter-orienteret klasse, da den bruges i java filhåndtering. Der er adskillige måder at skrive til en fil i Java på, da der er adskillige klasser og metoder, der kan opnå dette. De inkluderer funktionen writeString(), FileWriterclass, BufferedWriter-klassen og FileOutputStream.