Java FileWriter

a Java FileWriter osztály, java.io.FileWriter lehetővé teszi karakterek írását egy fájlba. Ebben a tekintetben a Java FileWriter hasonlóan működik, mint a FileOutputStream azzal a különbséggel, hogy a FileOutputStream bájt alapú, míg a FileWriter karakter alapú. A FileWriterszöveg írására szolgál, más szóval. Egy karakter megfelelhet egy vagy több bájtnak, a használt karakterkódolási sémától függően. A Java FileWriter osztály egyébként a Java Writer osztály alosztálya.

FileWriter Example

itt van egy egyszerű Java FileWriter example:

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

Megjegyzés: Az egyértelműség kedvéért itt kihagytuk a megfelelő kivételkezelést. Ha többet szeretne megtudni a kivétel helyes kezeléséről, látogasson el a Java Io kivételkezelés oldalra.

a FileWriter – nak más konstruktorai is vannak, lehetővé téve a fájl különböző módon történő megadását. További információkért keresse meg a hivatalos JavaDoc-ot.

felülírás vs.Fájl hozzáfűzése

Java FileWriter létrehozásakor eldöntheti, hogy felülírja-e az azonos nevű meglévő fájlokat, vagy hozzá kíván-e fűzni egy meglévő fájlt. Úgy dönt, hogy kiválasztja ,hogy melyik FileWriter konstruktort használja.

a FileWriter konstruktor csak egy paramétert, a fájlnevet vesz fel, felülír minden létező fájlt:

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

FileWriter van egy konstruktora, amely 2 paramétert is tartalmaz: a fájl nevét és egy logikai értéket. A logikai érték jelzi, hogy hozzáfűzni vagy felülírni egy meglévő fájlt. Itt van két Java FileWriter példa arra, hogy:

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

FileWriter karakterkódolás

a FileWriter feltételezi, hogy a bájtokat a fájlba az alapértelmezett karakterkódolással kívánja kódolni annak a számítógépnek, amelyen az alkalmazás fut. Lehet, hogy ez nem mindig az, amit akarsz, és nem tudod megváltoztatni!

ha más karakterkódolási sémát szeretne megadni, ne használjon FileWriter értéket. Használja a OutputStreamWriter értéket a FileOutputStream helyett. A OutputStreamWriter segítségével megadhatja a karakterkódolási sémát, amelyet használni kell, amikor bájtokat ír az alapul szolgáló fájlba.

write(int)

a Java FileWriter write(int) metódus a int alsó 16 bitjét írja a rendeltetési helyre, amelyhez a FileWriter kapcsolódik, egyetlen karakterként. Itt van egy példa egyetlen karakter írására Java FileWriter:

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

write(char)

a Java FileWriter rendelkezik egy write(char) metódussal is, amely karaktersorozatot tud írni a rendeltetési helyre, amelyhez a FileWriter csatlakozik. A write(char)metódus a ténylegesen írt karakterek számát adja vissza a FileWriter – hoz. Itt van egy példa az írás egy tömb karakter egy Java FileWriter:

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

írási teljesítmény

gyorsabb karakterek tömbjét írni egy Java Fájlíróba, mint egyszerre egy karaktert írni. A gyorsulás meglehetősen jelentős lehet-akár 10-szer magasabb vagy annál is nagyobb. Ezért ajánlott a write(char) módszerek használata, amikor csak lehetséges.

a pontos gyorsítás a Java kódot futtató számítógép mögöttes operációs rendszerétől és hardverétől függ. A gyorsítás olyan kérdésektől függ, mint a memória sebessége, a merevlemez sebessége és a puffer mérete stb.

átlátszó pufferelés a BufferedWriter segítségével

a Java FileWriter – ra írt bájtok átlátszó pufferelését egy Java Bufferedwriterbe csomagolva kaphatja meg . A BufferedWriter – be írt összes bájt először egy belső bájttömbben lesz pufferelve a BufferedWriter – ben. Amikor a puffer megtelt, a puffert egyszerre öblítik az alapul szolgáló FileWriter értékre. Itt van egy példa a Java FileWriter csomagolására a BufferedWriter:

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

a BufferedWriter – ről bővebben a BufferedWriter bemutatómban olvashatsz.

flush()

a Java FileWriter flush() metódusa a FileWriter fájlba írt összes adatot átöblíti az alapul szolgáló fájlba. Az adatok valahol az operációs rendszer memóriájában pufferelhetők, még akkor is, ha a Java kódja a FileWriter – ra írta. A flush() hívásával biztosíthatja, hogy a pufferelt adatok a lemezre kerülnek. Íme egy példa a Java FileWriter – ra írt adatok öblítésére a flush() metódus meghívásával:

fileWriter.flush();

FileWriter bezárása

amikor befejezte a karakterek írását egy Java-ba FileWriter ne felejtse el bezárni. A FileWriter bezárása a close() metódus meghívásával történik. Így néz ki a Java FileWriter bezárása:

fileWriter.close();

használhatja a Java 7-ben bevezetett try-with-resources konstrukciót is. Itt van, hogyan kell használni, és zárja be a FileWriter néz ki a try-with-resources konstrukció:

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

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.