YOUR LOGO Dátové typy, Stream, StringBuilder,....

Slides:



Advertisements
Podobné prezentace
A1PRG - Programování – Seminář Ing. Michal Typová konverze, oblast platnosti, paměťové třídy 9 Verze
Advertisements

Standardní knihovní funkce pro práci s textovými řetězci
Pro začátek něco lehčího
VISUAL BASIC Práce s řetězci Použitá literatura: Kvoch: Visual Basic 4.
Vstup a výstup Ing. Lumír Návrat  katedra informatiky, A-1018 
Vstup a výstup doc. Dr. Ing. Miroslav Beneš  katedra informatiky, A-1007 
Programování funkcí v Excelu
JUI - 3. přednáška Zpracování seznamů, predikátové a vyhodnocovací funkce RNDr. Jiří Dvořák, CSc.
VISUAL BASIC Práce se soubory.
Aplikační a programové vybavení
Třída Array Je součásti balíčku java.util Účelem je usnadnit práci s poli Metody – nejpoužívanější equel(),fill(),sort() a binarySearch() equels() Slouží.
Programování v Pascalu Přednáška 9 RNDr. Hana Havelková.
Algoritmizace a programování Datové typy v Delphi - 05
Práce se soubory. Ukládání dat Textové soubory s jednoduchou strukturou (např..txt a.csv) textové soubory s vnitřní hierarchií (např..xml) Soubory binárního.
Počítače a programování 1. Obsah přednášky Výjimky - základní typy výjimek Způsoby zpracování výjimek.
C# pro začátečníky Mgr. Jaromír Osčádal
Druhé cvičení Vytváření identifikátorů Datové typy
Programování v Pascalu Přednáška 7
Materiály k přednášce Úvod do programování Ondřej Čepek.
KIV/PPA1 cvičení 11 Cvičící: Pavel Bžoch. Osnova cvičení Souborový vstup a výstup Práce s textovými soubory.
C# - struktury, výčtové typy, pole
Datové typy 6 A1PRG - Programování – Seminář
Práce se soubory. * soubory patří k základním datovým prvkům v počítači * převážná většina programovacích jazyků má podporu určité formy práce se soubory.
A1PRG - Programování – Seminář Ing. Michal Standardní knihovní funkce pro práci se soubory 13 Verze
PRÁCE S PROUDY V.NET FRAMEWORK APLIKACÍCH Architektura technologie.NET Jan Martinovič, FEI - Katedra Informatiky.
C# - znakové typy a řetězce
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
C# - číselné datové typy
Seminář C cvičení STL, Trolltech Ing. Jan Mikulka.
C# - Exceptions (výjimky)
Datové typy a práce s nimi
Návrh a tvorba WWW Přednáška 11
08/04/20151 Události (1) Členy třídy umožňující objektu nebo třídě rea- govat na zprávy (události) Dovolují třídě nebo objektu informovat jinou třídu nebo.
Počítače a programování 1 8.přednáška. Obsah přednášky Řetězce - deklarace a vytvoření Základní metody pro práci s řetezci Znaky - třída Character Základní.
Alg91 Textové soubory Na rozdíl od jiných typů souborů jsou textové soubory určené pro gramotné lidské oko. Textový soubor je posloupnost znaků členěná.
C# - I/O, streamy, práce se soubory
JavaScript Podmínky, cykly a pole.
3. Příkazy  Příkazy dělíme na jednoduché a strukturované.  Jednoduché příkazy - žádnou jejich dílčí částí neni příkaz - přiřazovací, vstupu a výstupu,
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
11/04/20151 Soubory a proudy (1) Soubor (file) označuje pojmenovanou sadu dat uloženou na externím záznamovém médiu (např. HDD, CD, DVD, BD, tape) Proud.
Orbis pictus 21. století Tato prezentace byla vytvořena v rámci projektu.
Algoritmizace a programování Binární soubory - 14 Mgr. Josef Nožička IKT Algoritmizace a programování
C# - předávání parametrů Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
UNIX — doplňky Informatika pro ekonomy II přednáška 9.
12/04/20151 Kolekce (1) Kolekce (collection) představují standardní datové struktury (seskupení) prvků (objektů) Jsou definovány ve jmenném prostoru System.Collections.
Aplikační a programové vybavení
7. Typ soubor Souborem dat běžně rozumíme uspořádanou množinu dat, uloženou mimo operační paměť počítače (na disku). Pascalský soubor je abstrakcí skutečného.
13/04/20151 Indexery (1) Členy třídy (struktury) umožňující třídě (struk- tuře) používat hranaté závorky a pracovat s ní podobně jako s polem (používat.
Sedmé cvičení Soubory Vstupně/výstupní proudy. Java cv72 Soubory Třída File Objekt popisující soubor na filesystému Nedá se z něho přímo číst a psát Představuje.
Algoritmizace a programování Textové soubory - 13 Mgr. Josef Nožička IKT Algoritmizace a programování
Šesté cvičení Výjimky Balíky.
KIV/PPA1 cvičení 9 Cvičící: Pavel Bžoch. Osnova cvičení Třída String a její metody –Řetězce a operace s nimi.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
Textové soubory Vytváření a zpracování textových souborů.
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
JUI přednáška Vstup a výstup, cykly RNDr. Jiří Dvořák, CSc.
Datové typy a operátory. Co jsou datové typy  Charakterizují proměnnou nebo konstantu – jaká data obsahuje  Data jsou v počítači ukládána jako skupiny.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
Úvod do UNIXu (6th round)
Balíky Hlavní balík - main - zatím jsme s jiným nepracovali Rozdělují tzv. namespaces = množiny jmen pro proměnné $lemma = "cukr"; znamená $main::lemma.
Programovací jazyk C# 2. část. Datové typy C# rozeznává dva druhy datových typů, hodnotové a referenční. Hodnotové datové typy Proměnné hodnotového datového.
Praha & EU: Investujeme do vaší budoucnosti Evropský sociální fond Gymnázium, Praha 10, Voděradská 2 Projekt OBZORY Datové typy a operátory Základní programové.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
Úvod do Pythonu – IO operace se soubory.
Výukový materiál zpracován v rámci projektu
Dátové typy, Stream, StringBuilder,...
Soubory a proudy (1) Soubor (file) označuje pojmenovanou sadu dat uloženou na externím záznamovém médiu (např. HDD, CD, DVD, BD, tape) Proud (stream) představuje.
Databázové systémy a SQL
C# přehled vlastností.
Databázové systémy a SQL
Transkript prezentace:

YOUR LOGO Dátové typy, Stream, StringBuilder,...

YOUR LOGO Dátové typy  Hodnotové a referenčné

YOUR LOGO Typy Keyword.NET Framework Type DescriptionVariable Declaration Example boolSystem.Boolean Boolean type; a bool value is either true or false. true or false bool val1 = true; bool val2 = false; byteSystem.Byte 8-bit unsigned integral type 0 to 255byte val1 = 12; charSystem.Char 16-bit unicode character 0 to char c = ‘a’; char c = 255; decimalSystem.Decimal 128-bit fixed-point decimal type with 28 significant digits -7.9e28 to 7.9e28 decimal val = 1.23M; doubleSystem.Double 64-bit double- precision floating point type -1.79e308 to 1.79e308 double val1 = 1.23; double val2 = 4.56D; floatSystem.Single 32-bit single- precision floating point type -3.40e38 to 3.40e38 float val = 1.23F ;

YOUR LOGO Keyword.NET Framework Type DescriptionVariable Declaration Example intSystem.Int32 32-bit signed integral type -2,147,483,648 to 2,147,483,647 int val = 12; longSystem.Int64 64-bit signed integral type - 9,223,372,036,8 54,775,808 to 9,223,372,036,8 54,775,807 long val1 = 12; long val2 = 34L; sbyteSystem.SByte 8-bit signed integral type -128 to 127sbyte val = 12; shortSystem.Int16 16-bit signed integral type -32,768 to short val = 12; stringSystem.String Immutable string of 16-bit Unicode characters All valid string characters string val = "Hello world." uintSystem.UInt32 32-bit unsigned integral type 0 to 4,294,967,296 uint val1 = 12; uint val2 = 34U; ulongSystem.UInt64 64-bit unsigned integral type 0 to 18,446,744,073, 709,551,615 ulong val1 = 12; ulong val4 = 78UL; ushortSystem.UInt16 16-bit unsigned integral type 0 to 65535ushort val1 = 12;

YOUR LOGO Inicializácia  System.Int32 x = 5; int x = 5;  x = new int(); - default i int je 0  Odkazové typy defaultne ukazujú na null

YOUR LOGO Operácie TypOperátorFunkciaPríklad Arithmetic +Addx = 1 + 2; -Subtractx = 1 - 2; *Multiplyx = 1 * 2; /Dividex = 1 / 2; %Modulus x = 5 % 2; vráti Konkatenace reťazacov +String concatenation string str = "Hello " + "World"; Increment/decrement ++Increment int x = 5; int y = x++; // hodnota y je 5 // hodnota x je 6 --Decrement int x = 5; int z = --x; // hodnota z je 4 // hodnota x je 4

YOUR LOGO TypOperátorFunkciaPríklad Porovnanie, výsledok true/false ==Rovný 1 == 1 would return true (1 is equal to 1) !=Nerovný 1 != 1 would return false 1 != 2 would return true (1 is not equal to 2) <Menší 1 < 2 would return true (1 is less than to 2) >Väčší 2 > 1 would return true (2 is greater than to 1) <=Menší alebo rovný 1 <= 1 would return true (1 is equal to 1) >=Väčší alebo rovný 1 >= 1 would return true (1 is equal to 1) Logický &&A ||Alebo true false

YOUR LOGO Priradenie +=Pripočítaj a priraď int x = 5; x += 100; // x 105; -=Odpočítaj a priraď int x = 5; x -= 100; // x 95; *=Vynásob a priraď int x = 5; x *= 100; // x 500; /=Vydeľ a priraď int x = 100; x /= 100; // x 20; %=Modulo a priraď int x = 5; x %= 100; // x 0;

YOUR LOGO Pretypovanie  Implicitné -Ku konverzii dôjde ak by bola bezstratová -Automatická konverzia  Explicitná -Je nutné zadať ak môže byť strata dát -(typ) hodnota -int x = (int)3.5f;

YOUR LOGO Implicitné pretypovanie

YOUR LOGO Strata dát

YOUR LOGO Pretypovanie referenčných typov  Implicitné – Upcasting -string str = "Hello World"; object obj = str;  Explicitné – Downcasting -castobject obj = "Hello World"; string str = (string)obj; -object obj = "Hello World"; string str = (obj as string);

YOUR LOGO Pretypovanie hodnotového na referenčný  Boxing  Vytvorenie kópie hodnoty a jej umiestnenie na heap  int x = 100; object obj = x;

YOUR LOGO Unboxing  object obj = 100; int x = (int)obj;

YOUR LOGO Pole  Pole je referenčný typ  Všetky elementy musia byť rovnakého typu  Pole začína od 0

YOUR LOGO Pole  Deklarácia a inicializácia -int[] array1; -int[] array2 = new int[3]; -int[] array3 = new int[3] { 0, 1, 2 }; -int[] array4 = new int[] { 3, 4, 5 };

YOUR LOGO Jagged Array  Jagged array – pole ukazateľov na polia  int[][] array1 = new int[3][] {new int[3]{1,2,3}, new int[4]{4,5,6,7}, new int[5]{8,9,10,11,12}};

YOUR LOGO Podmienky  IF Else  Case  return ((x == 0) ? "Hello" : "Goodbye")

YOUR LOGO Foreach  int[] numbers = {1,4,9,16}; foreach( int i in numbers ) { Console.WriteLine(" {0}", i); }

YOUR LOGO Řetězce  Řetězce jsou implementovány primitivním referenčním typem String -tento typ je nezměnitelný - jeho hodnoty jsou uloženy ve speciálních tabulkách (ne na haldě) -jejich identita je dána obsahem  jsou vždy inicializovány literálem, jejich konstruktor se nedá volat  všechny operace se chovají tak, že vrátí nový řetězec místo, aby změnily stav stávajícího

YOUR LOGO Řetězce  chovají se jako kolekce typu System.Char – implementují IEnumerable, mají indexer  základní řetězcové operace – Concat, Substring, Replace, Insert, ToUpper,...  přetížené operátory - + (konkatenace), == (porovnání obsahů), != (různost obsahů), = (kopíruje obsah řetězce do jiného řetězce)

YOUR LOGO StringBuilder  StringBuilder -konstruktorem se vytvoří základní buffer o 16 bytech, který se prodlužuje a zkracuje podle potřeby -StringBuilder sb1 = new StringBuilder();sb1 = "First string";StringBuilder sb2 = new StringBuilder("Second string");

YOUR LOGO String vs StringBuilder Počet konkatenací Optimum StringBuilder String

YOUR LOGO Operácie StringBuilder MethodDescription and Example Append StringBuilder sb2 = new StringBuilder("Second string"); sb2.Append(" Third string"); Insert StringBuilder sb2 = new StringBuilder("Second string"); sb2.Insert(0,"First string "); Remove StringBuilder sb2 = new StringBuilder("Second string"); sb2.Remove(12,6); Replace StringBuilder sb3 = new StringBuilder("I love cats"); sb3.Replace("cat","dog"); ToString StringBuilder sb1 = new StringBuilder("Click Me..."); button1.Text = sb1.ToString();

YOUR LOGO Výjimky  Chybové stavy jsou řešeny většinou pomocí výjimek – při výjimce se přeruší vykonávání kódu, vytvoří se objekt obsahující informace a hledá se někdo, koho to zajímá (v krajním případě uživatel aplikace)  speciální konstrukce v jazyce umožňují vyjádřit zájem na daném místě kódu převzít informaci o výjimce a nějak ji zpracovat

YOUR LOGO Třídy výjimek  Informace o výjimce se předávají prostřednictví speciálních tříd, které dědí od třídy System.Exception  tato poskytuje základní vlastnosti a kořen hierarchie  vlasnosti – Message, Source, StackTrace, TargetSite, InnerException  slovník Data – dodatečné informace jako dvojice klíč hodnota (může je přidávat i uživatel)

YOUR LOGO System.Exception  má čtyři konstruktory -defaultní bez parametrů -s jedním parametrem typu string -s jedním parametrem typu string a jedním typu Exception -protected konstruktor pro deserializaci  všechny vlastnosti jsou read-only

YOUR LOGO Hierarchie výjimek

YOUR LOGO Chytání výjimek  konstrukce try blok catch blok finally blok  kód se vykonává 1.vykonává se try blok a pokud se dojde na jeho konec, předá se řízení do finally 2.pokud dojde k výjimce přeskočí se na začátek příslušného catch bloku a pak se pokračuje jako v 1. 3.vykoná se finally blok

YOUR LOGO Chytání výjimek  je možné vynechat catch blok nebo finally blok, ale ne oba  příkaz catch může být specifický – pak je tvaru catch (typ [identifikátor])  platí, že při vzniku výjimky se řízení předá do prvního specifického bloku catch, jehož typ je typem vytvořeného objektu výjimky.  typ musí být odvozen od System.Exception

YOUR LOGO Chytání výjimek  obvykle za sebe řadíme specifické catch bloky se vzrůstající obecností  pokud není výjimka zachycena ve funkci, kde vznikla nebo je znovu vyhozena, je předána nadřízené funkci, to se děje tak dlouho dokud není zpracována  v krajním případě je předána runtimu, který ji zpracuje tak, že ukončí běh programu a uživatele informuje o výjimce, která nebyla v programu zpracována.

YOUR LOGO Vnořené bloky try  je možné do sebe bloky try vnořovat : try { //A try { //B } catch { //C } finally { //uklid } //D } catch { // osetreni chyb }

YOUR LOGO Příkaz throw  Výjimku je možné vygenerovat pomocí příkazu throw vyjimka  vyjimka je jakýkoliv výraz, který je typu odvozeného od System.Exception  typicky se použije výraz s operátorem new nebo reference na předpřipravený objekt výjimky throw new Exception(“Vyjimka“);  bez parametru slouží k přeposlání výjimky dál (částečné zpracování)  pokud vyhazujeme výjimku v catch bloku, použijeme vlastnost InnerException třídy System.Exception k uložení výjimky, kterou jsme zpracovávali

YOUR LOGO Bloky finally  kód v nich se provede vždy, i když došlo v bloku try k výjimce  používají se k úklidu (zavření souborů a podobně) a jiným nezbytným akcím  místo dvojice try...finally, kde se v bloku try alokují zdroje a v bloku finally uvolňují lze použít konstrukci

YOUR LOGO Príklad komplexného ošetrenia Exception

YOUR LOGO Regulární výrazy  jsou reprezentovány třídou System.Text.RegularExpressions.RegEx  jsou to speciální řetězce, které slouží k vyhledávání a nahrazování podřetězců v jiných řetězcích  jsou kompatibilní s PERL5 regulárními výrazy

YOUR LOGO Regulární výrazy  základní typ je prostě podřetězec – “abab”, najde řetězec, obsahující právě tyto znaky v tomto pořadí  lze vytvářet složitější typy vkládáním speciálních znaků  například znaky pro polohu v řetězci ^, $ - začátek a konec řádku, \z – konec řetězce, \b – začátek slova, např “^abc$”

YOUR LOGO Regulární výrazy  znaky pro speciální znaky – -\t – tab, \n – newline, \u0020 – unicodový znak s číslem 32 např. “^ab\u0022\n”  znaky pro opakování – píší se za znak a určují, že se musí(může) v příslušném řetězci opakovat a kolikrát – -*(0 nebo více), +(1 nebo více), ?(0 nebo 1), {n}, {n,}, {n,m} (n, n nebo více, mezi n a m) -normálně je hladové (hledá nejdelší podřetězec), přidáním dalšího otazníku se změní na líné (nejkratší)

YOUR LOGO Regulární výrazy  znaky pro typy znaků – pokud je na příslušné pozici znak z příslušného seznamu nebo příslušného typu -. – jakýkoliv jeden znak, x|y – znak x nebo y, [xyz] – kterýkoliv z x, y a z, [a-z] – rozsah -typy - \d – číslice, \D nečíslice, \s – whitespace ap.

YOUR LOGO Regex objIntPattern=new Regex("^-[0-9]+$|^[0-9]+$"); Matches/Match string t14 = " test 1 test 2.3 test 47 "; string p14 MatchCollection mc14 = Regex.Matches(t14, p14); Regular Expression Library:

YOUR LOGO System.Convert

YOUR LOGO Vstup a výstup – souborový systém  BCL obsahuje množství tříd, které umožňují pracovat se souborovým systémem  jsou ve jmenném prostoru System.IO  základní třídy jsou FileSystemInfo, FileInfo, DirectoryInfo a DriveInfo. Reprezentují různé prvky systému souborů.

YOUR LOGO Práce se soubory a adresáři  FileInfo a DirectoryInfo mají konstruktor, kterému se předá cesta k souboru nebo k adresáři  mají instanční metody, které implementují operace na souborovém systému – kopírování, vytváření, přesouvání, otvírání a podobně  existují třídy File a Directory, které poskytují stejnou funkcionalitu, ale jejich příslušné metody jsou statické a cesty k souborům se jim předávají jako parametry

YOUR LOGO Třída Path  pomocná třída pro práci s řetězci obsahujícími cesty k souborům  metody jako ChangeExtension, GetExtension, GetPathRoot, HasExtension – pracují s řetězcem cesty  metoda GetTempFileName – založí dočasný soubor a vrátí cestu k němu

YOUR LOGO FileSystemWatcher  třída, která umožňuje sledovat změny v daném adresáři  má konstruktor, kterému předáme cestu k adresáři  má vlastnost Filter, která obsahuje masku, jaké soubory se mají sledovat  vlastnost NotifyFilter určuje, které události se mají sledovat  události Changed, Created, Deleted a Renamed typu FileSystemEventHandler

YOUR LOGO Vstup a výstup  je prováděn pomocí proudů (stream)  proud je posloupnost hodnot, která může být potenciálně ukončena  v BCL jsou proudy implementovány pomocí abstraktní třídy System.IO.Stream, která zajišťuje základní operace na abstraktním proudu (čtení (read), psaní (write), posun kursoru (seek), timeout)

YOUR LOGO Stream – vlastnosti a metody  CanRead, CanSeek, CanWrite, CanTimeout – podporuje daný proud čtení, psaní, vyhledávání, timeout?  Length, Position – délka v bytech, poloha virtuálního kurzoru v rámci proudu  metody Read, ReadByte – načtení více, jednoho bytu a posun ukazatele  metody Write, WriteByte – zápis více nebo jednoho bytu a posun ukazatele  Seek – nastavení pozice na dané místo (parametry offset a začátek hledání)  Flush – vyprázdní proud na zařízení nebo do základního proudu

YOUR LOGO FileStream  základní třída pro čtení z a zápis do souboru, podporuje čtení a zápis bytů  oproti Stream podporuje navíc metody Lock a Unlock, které zakazují jiným procesům číst a zapisovat do souboru  podporuje zápis, čtení i seek Seek(Int64 offset, SeekOrigin origin)

YOUR LOGO StreamReader(Writer)  třídy pro zápis a čtení znaků  všechny čtecí metody vracejí řetězce nebo pole řetězců  třídy jsou dvě – jedna pro čtení a jedna pro zápis  StreamReader – operace Peek, Read(Block|Line|ToEnd)  StreamWriter – Write, WriteLine

YOUR LOGO Kódování  tyto proudy navíc podporují kódování znaků  kódování je reprezentováno třídou System.Text.Encoding a představuje způsob, jak abstraktní text zaznamenat v paměti počítače  třída Encoding má vlastnosti vracející nejčastější kódování ( ASCII, Unicode, UTF32 ) a statickou metodu GetEncoding(string), která vrátí kódování reprezentované řetězcem (např. windows )

YOUR LOGO Kódování  oba znakové proudy mají konstruktor, kterému je možné předat kódování StreamWriter sw = new StreamWriter(file, Encoding.UTF7);  defaultní je Unicode, u čtení není obvykle nutné kódování uvádět, pokud se jedná o běžné unicodové typy  třída Encoding má metodu GetBytes, která běžný řetězec převede na pole bytů v příslušném kódování

YOUR LOGO Vytváření proudů  FileStream vrací metoda Open třídy File, je ale třeba nastavit vhodná práva a mód -módy – FileMode.(Open, Create, CreateNew, Append, OpenOrCreate) -práva – FileAccess.(Read, ReadWrite, Write) -je možno použít metodu OpenWrite k otevření exitujícího souboru k zápisu a OpenRead ke čtení  jméno souboru je možno předat i přímo konstruktoru třídy FileStream

YOUR LOGO Vytváření proudů  Třída File má také celou řadu metod, jejichž jména končí na Text, a které vracejí příslušný StreamReader nebo Writer s nastaveným kurzorem a právy -ke čtení OpenText -k zápisu AppendText, CreateText  některé metody také úplně odstiňují vytváření proudů – ReadToEnd, WriteAllText

YOUR LOGO Základní a adaptérové proudy  proudy lze navazovat na sebe, první čte přímo z externího zařízení každý další pak z předchozího (a každý přidává nějakou zvláštní vlastnost)  je to vlastně opět způsob jak přidat vlastní chování k existující třídě  typické adaptérové třídy jsou readry a writery (např. StreamReader přidává schopnost číst a rozeznávat znaky)  adaptérový proud navážeme na základní tak, že základní předáme konstruktoru adaptérového

YOUR LOGO Adaptérové proudy  Typicky, zápis do souboru : -vytvoření základního proudu FileStream fs = new File.Create(cesta); -vytvoření proudu pro zápis StreamWriter sw = new StreamWriter(fs); -práce s writerem sw.WriteLine(“Zapiseme retezec”); -zavření obou proudů sw.Close(); fs.Close();

YOUR LOGO Další základní proudy  Zatím jsme viděli základní proud pro práci se souborem – FileStream  další proudy pracují nad jiným zdrojem – MemoryStream, NetworkStream  mohou se lišit funkčností podle charakteru příslušného zařízení - MemoryStream neumí timeout, ale umí seek - NetworkStream naopak  StringReader – nad Stringem, StringWriter – nad StringBuilderem

YOUR LOGO Další adaptérové proudy  Zatím jsme potkali StreamReader a Writer pro zápis/čtení znaků  BufferedStream – slouží ke zvýšení výkonu, používá vyrovnávací paměť pro čtení a zápis  BinaryReader a Writer – zápis a čtení binárních (např. strukturovaných) dat -přetížená metoda Write BinaryWriter u -metody ReadJmenoTypu (např. ReadInt64 ) BinaryReader u

YOUR LOGO Adaptérové proudy  GZipStream a DeflateStream – komprese dat v proudech metodami ZIP a DEFLATE -data se komprimují a dekomprimují prostě zápisem do a čtením z těchto proudů -konstruktor má kromě základního proudu ještě parametr typu enum CompressionMode.(Compress | Decompress)