Java FileWriter

Java FileWriter-klassen, java.io.FileWriter, gjør det mulig å skrive tegn til en fil. I den forbindelse Fungerer Java FileWriter mye som FileOutputStream bortsett fra at en FileOutputStream er byte basert, mens en FileWriter er karakterbasert. FileWriter er ment å skrive tekst, med andre ord. Ett tegn kan tilsvare en eller flere byte, avhengig av tegnkodingsskjemaet som brukes. Java FileWriter – klassen er en underklasse Av Java Writer-klassen, forresten.

Filewriter Eksempel

her er en enkel Java FileWriter eksempel:

Writer fileWriter = new FileWriter("data\filewriter.txt");fileWriter.write("data 1");fileWriter.write("data 2");fileWriter.write("data 3");fileWriter.close();

Merk: Riktig unntakshåndtering har blitt hoppet over her for klarhetens skyld. Hvis du vil vite mer om riktig unntakshåndtering, kan du gå Til Java IO Unntakshåndtering.

FileWriter har også andre konstruktører, slik at du kan angi filen du vil skrive til på forskjellige måter. Se i den offisielle JavaDoc for mer detaljert info.

Overskriving vs. Tilføying Av Filen

Når Du oppretter En Java FileWriter, kan du bestemme om du vil overskrive en eksisterende fil med samme navn, eller om du vil tilføye til en eksisterende fil. Du bestemmer det ved å velge hvilken FileWriter konstruktør du bruker.

konstruktøren FileWriter tar bare en parameter, filnavnet, vil overskrive en eksisterende fil:

Writer fileWriter = new FileWriter("c:\data\output.txt");

FileWriter har en konstruktør som også tar 2 parametere: filnavnet og en boolsk. Boolsk angir om du vil legge til eller overskrive en eksisterende fil. Her er To Java FileWriter eksempler som viser det:

Writer fileWriter = new FileWriter("c:\data\output.txt", true); //appends to fileWriter fileWriter = new FileWriter("c:\data\output.txt", false); //overwrites file

FileWriter Character Encoding

den FileWriter forutsetter at du ønsker å kode byte til filen ved hjelp av standard tegnkoding for datamaskinen programmet kjører på. Dette kan ikke alltid være det du vil, og du kan ikke endre det!

hvis du vil angi et annet tegnkodingsskjema, må du ikke bruke FileWriter. Bruk en OutputStreamWriter på en FileOutputStream i stedet. Med OutputStreamWriter kan du angi tegnkodingsskjemaet som skal brukes når du skriver byte til den underliggende filen.

skriv(int)

Java FileWriter write(int) – metoden skriver den nedre 16-biten av int til målet FileWriter er koblet til, som et enkelt tegn. Her er et eksempel på å skrive et enkelt tegn til En Java FileWriter:

FileWriter fileWriter = new FileWriter("data/output.txt");fileWriter.write('A');

write(char)

Java FileWriter har også en write(char) metode som kan skrive en rekke tegn til målet FileWriter er koblet til. Metoden write(char) returnerer antall tegn som faktisk er skrevet til FileWriter. Her er et eksempel på å skrive en rekke tegn Til En Java FileWriter:

FileWriter fileWriter = new FileWriter("data/output.txt");char chars = new char{'A','B','C','D','E'};fileWriter.write(chars);

Skriv Ytelse

det er raskere å skrive en rekke tegn til En Java FileWriter enn å skrive ett tegn om gangen. Hastigheten kan være ganske betydelig – opptil 10 x høyere eller mer. Derfor anbefales det å bruke write(char) – metodene når det er mulig.

den nøyaktige hastigheten du får, avhenger av det underliggende OPERATIVSYSTEMET og maskinvaren til datamaskinen du kjører Java-koden på. Hastigheten avhenger av problemer som minnehastighet, harddiskhastighet og bufferstørrelser etc.

Transparent Buffering via BufferedWriter

du kan få gjennomsiktig buffering av byte skrevet Til En Java FileWriter ved å pakke den inn I En Java BufferedWriter . Alle byte skrevet til BufferedWriter vil først bli bufret inne i en intern byte array i BufferedWriter. Når bufferen er full, spyles bufferen til den underliggende FileWriter alt på en gang. Her er et eksempel på å pakke Inn En Java FileWriter i en BufferedWriter:

int bufferSize = 8 * 1024;Writer writer = new BufferedWriter( new FileWriter("c:\data\output-file.txt"), bufferSize );

Du kan lese mer om BufferedWriter i Min BufferedWriter tutorial.

flush ()

Java FileWriter ‘ s flush() – metoden spyler alle data skrevet til FileWriter til den underliggende filen. Dataene kan bufres I OS-minne et sted, selv om Java-koden din har skrevet den til FileWriter. Ved å ringe flush() kan du forsikre deg om at eventuelle bufrede data blir spylt (skrevet) til disk. Her er et eksempel på flushing data skrevet Til En Java FileWriter ved å ringe sin flush() metode:

fileWriter.flush();

Lukke En FileWriter

Når du er ferdig med å skrive tegn til En Java FileWriter, bør du huske å lukke den. Lukking av en FileWriter gjøres ved å ringe sin close() – metode. Slik lukker Du En Java FileWriter :

fileWriter.close();

Du kan også bruke try-with-resources construct introdusert I Java 7. Slik bruker og lukker du et FileWriter – utseende med try-with-resources-konstruksjonen:

try(FileWriter fileWriter = new FileWriter("data\filewriter.txt") ){ fileWriter.write("data 1"); fileWriter.write("data 2"); fileWriter.write("data 3");}

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.