Streams O, outputstream

Java standard könyvtár egy nagyon fejlett eszköz kimenet. Minden kimeneti lehetőségeket koncentrálódnak a csomag java.io.

Két párhuzamos hierarchia teljesítmény-osztályban. OutputStream és író. Writer osztályú be a legújabb változat a Java.

Ez a cikk bemutatja a használatát adatfolyamok adatok kimenetét fájlba. Hierarchia kiadási OutputStream folyam vonatkozásában az alábbi ábra.

Streams O, outputstream

Tápáram - absztrakt érték adatforrást, vagy a vevő, amely képes feldolgozni információkat. Kétféle patakok: byte és jellegét. Bizonyos helyzetekben a kódjelfolyamokat hatékonyabbak, mint byte. Osztályok, hogy abból az osztályból OutputStream vagy író. Módszerek nevezték write (), hogy írjon egyetlen byte vagy byte array (felelős kimenő adatok).

Class OutputStream - egy absztrakt osztály, amely meghatározza a byte stream kimenet.

Örökösei ennek az osztálynak határozza küldjük az adatok: egy sor bájt egy fájlba vagy csatornát. Tól bájttömböt létrehozhat egy szöveget karakterlánc.

OutputStream osztály módszerek:

  • void write (int b) írja egy byte a kimenet. Ezzel a módszerrel az érvelés egy int, amely lehetővé teszi, hogy hívja írni, így ez a kifejezés, akkor nem kell elvégezni, hogy azt a típus byte.
  • void write (byte b []) azt írja, hogy a kimeneti stream összes említett tömb bájt.
  • void write (byte b [], int le, int len) írja áramába részét a tömb LEN bájtok száma kezdődő elem b [off].
  • void flush () törli az esetlegesen kimeneti pufferek, kiegészítve a kivonási művelet.
  • void close () bezárja a kimeneti stream. Későbbi kísérletek, hogy írjon az áramot gerjeszti IOException.

Class ByteArrayOutputStream van kimeneti stream segítségével egy sor bájt a helyét. Ahhoz, hogy hozzon létre egy objektumot az ebbe az osztályba, akkor annak egyik konstruktőrök:

Az első szerkesztő létrehoz egy sor adat byte tárolására 32 bájt hosszúságú, és a második konstruktor létrehoz egy sor mérete hossza.

Alkalmazási példák ByteArrayOutputStream osztályok:

Osztályba ByteArrayOutputStream módszer írja az adatokat írjon a patak néhány (tömb bájt). Ez a tömb tárolt bájtok biztonságos létesítményben ByteArrayOutputStream buf területen, amely szintén egy sor bájt (védett byte [] buf). Mivel az írási módszer dobni egy kivételt, akkor a metódus kerül try..catch blokk.

Használata toString () és toByteArray (). akkor kap egy sor bájt buf szövegként vagy közvetlenül bájttömböt.

A writeTo módszerrel lehet átirányítani egy sor bájt egy másik téma. Ez a módszer, mint a paraméter egy objektum OutputStream. amely során rekord byte tömböt:

Mert ByteArrayOutputStream nem kell kifejezetten lezárja a patak módszerrel közel.

FileOutputStream készít egy osztály OutputStream objektum, amelyek segítségével, hogy írjon bájt egy fájlba. Ez a fő osztály dolgozik fájlokat. Létrehozva egy új objektum nem függ attól, hogy a megadott fájl létezik-e vagy sem. Ha a fájl nem létezik, egy új fájl jön létre. Ha megpróbál megnyitni egy fájlt csak olvasható, hogy el kell dobni.

FileOutputStream a következő tervezők:

Hogy mit jelent a tervezők az utolsó kitűnik azok leírását. De vannak olyan árnyalatok:

  • Amikor megnyit egy fájlt írásra, ha a fájl nem létezik, akkor létrejön.
  • Ha a fájl létezik, akkor lesz teljesen frissítve. Ie Ha megnyitja és bezárja a fájlt azonnal, az a fájl tartalmát is meg kell semmisíteni; képfájl lesz nulla hosszúságú.
  • Kivételt az előző szabály az utolsó tervezők. Ha hozzáfűzi a harmadik paraméter értéke igaz, akkor csatolni kell a fájlt.

Bármilyen további funkciók, mint a szülő osztály FileOutputStream hozzá.

Class BufferedOutputStream létrehoz egy puffer a kilépő. Ez a puffer tárolja bájtok nélküli kimenet állandó hivatkozás a készülék. Ha a puffer megtelik, adatrögzítés végezzük.

BufferedOutputStream osztály konstruktor veszi OutputStream objektum paraméter - ebben a példában a kimeneti fájl folyam FileOutputStream.

BufferedOutputStream sok új funkciók, könnyen optimalizáljuk az áramlási vyvodai intézkedéseket kell szervezésére használjuk hatékonyabban pufferelt kimeneti stream.

Class DataOutputStream lehetővé teszi az adatok írását a átáramoljon vonatkozó adatokKILÉPŐ felület, amely meghatározza a módszereket, hogy átalakítani az alap értékek szekvenciát alkotnak bájtok. Az ilyen hullámok könnyebb menteni bináris adatállományban.

Rögzíteni az egyes primitív típusok egy osztály módszer DataOutputStream:

  • writeByte (int érték) - 1 írja egy byte stream
  • writeChar (int érték) - rögzíti a 2 byte-os érték char
  • writeInt (int érték) - rögzíti a patak egész értéket int
  • writeShort (int v) - írja rövid áramlási értéket
  • writeFloat (lebegőpontos érték) - írja 4 byte-os érték float áramban
  • writeDouble (dupla érték) - írja áramban 8 bájtos érték kettős
  • writeBoolean (logikai érték) - írja a byte stream logikai érték
  • writeLong (hosszú érték) - írja egy hosszú áramlási értéket
  • writeUTF (karakterlánc érték) - rögzíti a patak vonal UTF-8 kódolás

PrintStream ez az osztály, hogy használják az információ megjelenítésére a konzolon. Amikor használja a hívás System.out.println (), hogy írjon néhány információt, hogy az ily módon használja a PrintStream, hiszen a változó ki Rendszer osztály az adott objektum osztály a PrintStream és println () metódus - módszer az osztály PrintStream.

De PrintStream felhasználható információt írni a kimeneti stream. Például írhatunk adatokat egy fájlba:

Ez a példa PrintStream kivitelező. amely úgy, mint a paraméter patak FileOutputStream kimenet. Egy is használja a tervező adja meg a fájl nevét a rekordot: PrintStream (String filename).

A következő println () metódus termel információt rekord a kimeneti áram - azaz FileOutputStream objektumot. Abban az esetben, kimenet a konzolra keresztül System.out.println () a konzol szolgál a kimeneti stream.

A kimeneti adatokat a kimeneti stream PrintStream használja a következő módszerek:

A következő kód mutatja a lehetőségét, hogy formázott kimenetet PrintStream osztály:

ObjectOutputStream osztály használják sorosításához egy tárgy, egy patak. Sorszámozás az objektum állapotát rögzítési folyamat a falon, illetve extrakciós folyamat vagy visszaállítja a állapota az objektum a patak nevű deserialization. Sorszámozás nagyon kényelmes, ha a munka megy tovább összetett tárgyakat.

Ahhoz, hogy hozzon létre egy objektumot ObjectOutputStream kell átadni a kivitelező az áramot, amely a felvenni kívánt tárgyakat.

ObjectOutputStream adatok írására segítségével több módszer, amelyek közül a következők: