Java Skriv till fil – 4 sätt att skriva fil i Java

By rik

Skriva till filer i Java – Fyra metoder

Inledning

Java erbjuder flera alternativ för att lagra information i en fil. Valet av metod beror på om du vill spara text, binärdata eller om du behöver formatera din utdata. I denna artikel utforskar vi fyra distinkta sätt att hantera filskrivning i Java:

  • Användning av klassen BufferedWriter för att skriva textinnehåll.
  • Användning av klassen FileOutputStream för att spara binärdata.
  • Användning av klassen FileWriter för att skriva teckenbaserad information.
  • Användning av klassen PrintWriter för att generera formaterad utdata.

1. Att skriva text med klassen BufferedWriter

Klassen BufferedWriter, som tillhör Javas I/O-bibliotek, underlättar skrivandet av text till filer. Genom att använda buffring förbättras effektiviteten, då information först lagras i en minnesbuffert och sedan överförs till filen antingen när bufferten är full eller via anrop av metoden flush().

Följande kodexempel illustrerar hur du använder klassen BufferedWriter för att spara text i en fil:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class SkrivTillFilMedBufferedWriter {

public static void main(String[] args) {
try {
// Skapar en BufferedWriter som skriver till filen ”output.txt”
BufferedWriter skrivare = new BufferedWriter(new FileWriter(”output.txt”));

// Lägger till text i filen
skrivare.write(”Hej, världen!”);

// Tömmer bufferten och skriver till filen
skrivare.flush();

// Stänger BufferedWriter
skrivare.close();

System.out.println(”Texten har skrivits till filen output.txt”);
} catch (IOException e) {
System.out.println(”Fel vid skrivning till filen: ” + e.getMessage());
}
}
}

2. Spara binärdata med klassen FileOutputStream

Klassen FileOutputStream är avsedd för att spara binärdata i filer. Denna metod skriver information direkt till filen utan buffring.

Här är ett kodexempel som visar hur FileOutputStream kan användas för att lagra binärdata:

import java.io.FileOutputStream;
import java.io.IOException;

public class SkrivTillFilMedFileOutputStream {

public static void main(String[] args) {
try {
// Skapar en FileOutputStream för filen ”output.bin”
FileOutputStream outputStroem = new FileOutputStream(”output.bin”);

// Skriver binärdata till filen
byte[] data = {1, 2, 3, 4, 5};
outputStroem.write(data);

// Stänger FileOutputStream
outputStroem.close();

System.out.println(”Binär data sparad i filen output.bin”);
} catch (IOException e) {
System.out.println(”Fel vid skrivning till filen: ” + e.getMessage());
}
}
}

3. Skriv teckenbaserad data med klassen FileWriter

Klassen FileWriter, som också är en del av Javas I/O-bibliotek, används för att skriva teckenbaserad data till en fil. Den liknar BufferedWriter, men implementerar inte buffring.

Här illustreras användningen av FileWriter för att spara teckenbaserad information i en fil:

import java.io.FileWriter;
import java.io.IOException;

public class SkrivTillFilMedFileWriter {

public static void main(String[] args) {
try {
// Skapar en FileWriter för filen ”output.txt”
FileWriter skrivare = new FileWriter(”output.txt”);

// Skriver text till filen
skrivare.write(”Hej, världen!”);

// Stänger FileWriter
skrivare.close();

System.out.println(”Teckenbaserad data sparad i filen output.txt”);
} catch (IOException e) {
System.out.println(”Fel vid skrivning till filen: ” + e.getMessage());
}
}
}

4. Hantera formaterad utdata med klassen PrintWriter

Klassen PrintWriter, som också är en del av Javas I/O-bibliotek, underlättar skrivandet av formaterad information till filer. Den använder klassen PrintStream för att formatera utdata innan det skrivs till filen.

Här visas ett exempel på hur du kan använda PrintWriter för att lagra formaterad data:

import java.io.PrintWriter;
import java.io.IOException;

public class SkrivTillFilMedPrintWriter {

public static void main(String[] args) {
try {
// Skapar en PrintWriter för filen ”output.txt”
PrintWriter skrivare = new PrintWriter(”output.txt”);

// Formaterar och skriver text till filen
skrivare.printf(”Namn: %s”, ”John Doe”);

// Stänger PrintWriter
skrivare.close();

System.out.println(”Formaterad data sparad i filen output.txt”);
} catch (IOException e) {
System.out.println(”Fel vid skrivning till filen: ” + e.getMessage());
}
}
}

Sammanfattning

Vi har nu undersökt fyra metoder för att skriva information till en fil i Java:

  • Användning av klassen BufferedWriter för textskrivning.
  • Användning av klassen FileOutputStream för binärdata.
  • Användning av klassen FileWriter för teckenbaserad data.
  • Användning av klassen PrintWriter för formaterad utdata.

Valet av metod bör baseras på dina specifika behov. BufferedWriter är ett effektivt verktyg för textfiler, medan FileOutputStream är bättre lämpad för binärdata. FileWriter är bra för enklare teckenbaserad hantering, och PrintWriter används för att skapa mer strukturerad formaterad utdata.

Vanliga frågor

1. Hur öppnar jag en fil för skrivning i Java?

Du kan öppna en fil för skrivning med följande klasser:

  • new BufferedWriter(new FileWriter("filnamn.txt"))
  • new FileOutputStream("filnamn.txt")
  • new FileWriter("filnamn.txt")
  • new PrintWriter("filnamn.txt")

2. Hur skriver jag en sträng till en fil i Java?

Du kan använda write()-metoden i BufferedWriter, FileOutputStream, FileWriter, eller PrintWriter för att skriva strängar till en fil.

3. Hur lägger jag till information i en befintlig fil i Java?

För att lägga till information i slutet av en befintlig fil, öppna den med flaggan append=true. Detta säkerställer att data läggs till i slutet av filen och inte skriver över det befintliga innehållet.

4. Hur stänger jag en fil i Java?

Stäng filen genom att anropa metoden close() på instansen av BufferedWriter, FileOutputStream, FileWriter, eller PrintWriter.

5. Hur hanterar jag filundantag (exceptions) i Java?

Filundantag hanteras genom att fånga IOException.

6. Vad är en buffrad skrivare (buffered writer) i Java?

En buffrad skrivare är en klass i Java som används för att skriva teckenbaserad data till en fil. Den buffrar data för att förbättra skrivprestanda.

7. Vad är skillnaden mellan FileWriter och BufferedWriter i Java?

FileWriter skriver data direkt till en fil, medan BufferedWriter buffrar datan innan den skrivs till filen. Denna buffring bidrar till bättre prestanda.

8. Vad är PrintWriters syfte i Java?

PrintWriter används för att skriva formaterad text till en fil. Den använder PrintStream för att hantera formatering innan data skrivs.