Java >> Java tutoriál >  >> Java

Výukový program Java NIO

The New Input/Output (NIO ) byl představen s Java Development Kit (kódové označení JDK 1.4 Merlin). ) v únoru 2002. Jeho cílem bylo vyřešit mnoho nedostatků původních standardních tříd Java I/O. V tomto tutoriálu probereme mnoho aspektů knihovny NIO.

Účel našich výukových programů Java NIO

Níže jsou uvedeny některé zaměření naší série výukových programů Java NIO:

  • Snadný způsob, jak začít s Java NIO
  • Použití asynchronního / neblokujícího Java NIO
  • Implementace vysoce výkonného I/O kódu pomocí balíčku Java NIO
  • Snadný způsob, jak používat a implementovat Java NIO

Účel NIO

Java NIO Library nabízí vysoce výkonné funkce a funkce pro zpracování I/O operací. Tato knihovna to podporuje přímým propojením s nativními kanály, přímými vyrovnávací paměti a prostřednictvím rozšířené podpory soketů pomocí selektorů. Pomocí knihovny NIO jsou programátoři schopni implementovat vysokorychlostní I/O řešení, aniž by museli psát nativní kód (JNI). Navíc poskytuje vývoj neblokujících I/O operací

Rozdíly mezi NIO a tradičním Java I/O

Tradiční Java I/O API se zaměřuje na I/O streamy charakterizované (Byte Streams , Proudy postav ,Streamy s vyrovnávací pamětí ,Datové streamy a Proudy objektů ). V streamově orientovaném systému se data posouvají po jednom bajtu přes objekt nazývaný proud a používají se k reprezentaci vstupního nebo výstupního zdroje. Streamy podporují mnoho různých druhů dat včetně jednoduchých bajtů, primitivních datových typů, znakových datových typů využívajících konvence unicode a objektových typů ze serializovatelných objektů.

NIO naopak pracuje s daty v blocích prostřednictvím objektu zvaného Buffer. Každá z těchto operací vytváří nebo spotřebovává blok dat v jediném kroku. NIO zlepšuje výkon delegováním časově nejnáročnějších I/O operací (hlavně plnění a vyprazdňování vyrovnávacích pamětí) zpět na operační systém, což vede ke zvýšení rychlosti.

NIO Buffery

Vyrovnávací paměti jsou základním kamenem, na kterém jsou postaveny operace NIO. V podstatě všechny operace, které zahrnují NIO, používají vyrovnávací paměti jako pracovní oblast pro přenos dat dovnitř a ven ze zdroje dat do/z cíle. V knihovně NIO data putují do vyrovnávacích pamětí az vyrovnávacích pamětí na běžné bázi. Kdykoli zapisujete data, zapisujete data do vyrovnávací paměti a když čtete data, čtete z vyrovnávací paměti. Vyrovnávací paměti komunikují přímo s kanály NIO.

Kanály NIO

Kanály jsou podobné streamům v tradičním Java I/O API s tou výjimkou, že mohou poskytovat tři režimy:vstupní, výstupní nebo obousměrný. Na druhé straně toky, kde jsou jednosměrné (použili jste buď InputStream, nebo OutputStream). Kanály interagují přímo s vyrovnávacími pamětmi a nativním IO zdrojem, tj. souborem nebo soketem.

Selektory NIO

Selektor umožňuje multiplexování kanálů NIO. Selektory poskytují uživateli možnost pracovat s více kanály a poskytují výběr připravenosti kanálu.

Jak to všechno funguje, podrobně vysvětlíme v této sérii tutoriálů.

Výukové programy související s Java NIO

  • Výukový program Java NIO
    V této sérii výukových programů diskutujeme o nových funkcích Java NIO.
  • Java NIO Buffery
    Tento příspěvek se podrobněji zabývá vyrovnávacími pamětmi NIO a poskytuje praktické příklady použití vyrovnávacích pamětí v aplikacích v reálném světě.
  • Kanály Java NIO
    Tento příspěvek se podrobněji zabývá kanály NIO a poskytuje příklady síťových připojení a Java I/O ve vztahu k souborům.
  • Selektory Java NIO
    V tomto tutoriálu se naučíme, jak používat třídu Selector z knihovny balíčků java.io.channels k sestavení vysoce výkonného I/O klient-server pomocí NIO.
  • Kanál souborů Java NIO
    V tomto tutoriálu se naučíme používat třídu FileChannel z knihovny balíčků java.io.channels a poskytneme pracovní příklady všech hlavních metod.
  • Java NIO Socket Channel
    V tomto tutoriálu se naučíme, jak používat SocketChannel a jak se používá pro čtení/zápis streamově orientovaných dat a používání protokolu založeného na připojení TCP.
  • Výukový program Java NIO DatagramChannel
    V tomto tutoriálu se naučíme, jak pomocí DatagramChannel umožnit vývojářům vytvářet vysoce výkonné aplikace pro streamování dat, které odesílají a přijímají datagramy pomocí protokolu zvaného UDP.
  • Výukový program cesty Java NIO a NIO2
    Tento tutoriál představí rozhraní Path a mnoho jeho metod. Rozhraní Path bylo zpřístupněno jako součást vydání Java SE 7 v Java NIO 2 File API.

Java Tag