Java >> Java tutorial >  >> Java

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.


Java tag