Kontrola Dekorátory CheckedInputStream resp. CheckedOutputStream usnadňují kontolu nenarušenosti InputStreamu resp. OutputStreamu pomocí kontroního.

Slides:



Advertisements
Podobné prezentace
Standardní knihovní funkce pro práci s textovými řetězci
Advertisements

Vstup a výstup Ing. Lumír Návrat  katedra informatiky, A-1018 
Funkce Připomeňme si program pro výpočet faktoriálu:
Ing. Jan Mittner Profiling aplikací 2. Zend_Cache 3. Optimalizace výkonu databáze 4. Optimalizace rychlosti načítání webu 5. Další tipy.
Kompresní algoritmy.
Cvičení Úloha 1: Rozhodněte zda posloupnost znaků v poli délky n tvoří palindrom (slovo, které je stejné při čtení zprava i zleva). Př.: [a,l,e,l,a] [a,n,n,a]
Spojové struktury Spojová struktura ( linked structure ):
VISUAL BASIC Práce se soubory.
Vaše jistota na trhu IT Copyright © 2008, Rudolf Pecinovský 1 Soubory a proudy Rudolf Pecinovský
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ží.
Algoritmy I. Cvičení č. 10.
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.
C# pro začátečníky Mgr. Jaromír Osčádal
MATLAB® ( část 3 - scripty).
Větvení cykly J a v a Začínáme programovat Lucie Žoltá.
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# - datové typy Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí.
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.
Informatika pro ekonomy II přednáška 3
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.
REDUKCE DAT Díváme-li se na soubory jako na text, pak je tento text redundantní. Redundance vyplývá z:  některé fráze nebo slova se opakují  existuje.
Teorie komprese dat Veronika Srbová, 4.Z.
Vaše jistota na trhu IT Copyright © 2008, Rudolf Pecinovský 1 Soubory a proudy Rudolf Pecinovský
SWI072 Algoritmy komprese dat1 Algoritmy komprese dat Úvod.
Jiří Znoj - zno Tvorba konkordace Algoritmy II 3. projekt, 5. zadání Jiří Znoj - zno
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
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í.
Návrh a tvorba WWW Cvičení 7 PHP & Oracle - Bezpečnost.
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.
Příklady v jazyku C – část 4
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.
Správce virtuálních strojů Natalia Rubinova Martin Sloup Jiří Kučera.
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.
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.
Začínáme vážně programovat Řídící struktury Přetypování Vstupně výstupní operace Vlastní tvorba programů.
1 Počítače a programování 1 13.přednáška. 2 Obsah přednášky Vstupy a výstupy – 1.část.
Kompresní algoritmus LZW Dokumentografické informační systémy.
PJV031 Přetypování (casting) Objekty, atributy, lokální proměnné, parametry a návratové hodnoty metod mají definovaný, neměnný typ. Jsou dva druhy typů:
Číslo šablony: III/2 VY_32_INOVACE_P4_1.19 Tematická oblast: Hardware, software a informační sítě Komprimace Typ: DUM - kombinovaný Předmět: ICT Ročník:
Tento výukový materiál vznikl v rámci Operačního programu Vzdělávání pro konkurenceschopnost 1. KŠPA Kladno, s. r. o., Holandská 2531, Kladno,
PJV011 X36PJV ( Programování v JaVě ) Cílem předmětu je probrat: - základy jazyka a systému Java - nejdůležitější standardní balíčky (packages j2sdk) Organizace.
Veškerá data v počítači jsou uložena jako soubory.
6. Typ záznam Strukturovaný datový typ - znamená spojení několika elementů stejného nebo různých typů do jedné proměnné. Např. pole je strukturovaný datový.
Soubory BI-PA1 Programování a algoritmizace 1, ZS Katedra teoretické informatiky © Miroslav Balík Fakulta informačních technologií České vysoké.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Jazyk C A0B36PRI - PROGRAMOVÁNÍ Část II.
MICROSOFT OFFICE 2007/2010. Důvod změny Inovace technologií Nové možnosti použití Kompatibilita Ukončení tech. podpory starších verzí Office 2003 –
České vysoké učení technické Fakulta elektrotechnická S oubory Jazyk JAVA A0B36PRI - PROGRAMOVÁN Í v 1.01.
Počítačová grafika Komprimace grafických dat Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Růžena Hynková. Dostupné z Metodického portálu.
PJV16 1 Dokumentace Tvorba dokumentace byla vždy útrpnou záležitostí neboť: programátoři ji krajně neradi dělají - a pokud - tak až nakonec, nebývala žádná.
Programování KONSTANTY, ČTENÍ PO JEDNOM ZNAKU GETCHAR() FORMÁTOVANÝ VÝSTUP POMOCÍ PRINTF, VÝVOJOVÉ DIAGRAMY, CYKLY.
ZŠ Brno, Řehořova 3 S počítačem snadno a rychle Informatika 7. ročník III
PJV05 1 Balíček java.io je rozsáhlý, obecně koncipovaný systém sloužící pro vstup, výstup a přenos dat. Hlavními součástmi jsou potomci čtyř abstraktních.
Čas API pojednavá čas obecným, globálním způsobem.
PRVNÍ Projekt, struktura projektu
Informatika pro ekonomy přednáška 6
Y36PJC Programování v jazyce C/C++
Správce virtuálních strojů
Financováno z ESF a státního rozpočtu ČR.
Jakub Brodský Ondřej Radosta
Iterator<String>
Reflexe jako introspekce
ALG 09 Radix sort (přihrádkové řazení) Counting sort
C# přehled vlastností.
HASH.
Opakování ze 4. cvičení int a; printf("Zadej číslo: ");
Decorator.
Transkript prezentace:

Kontrola Dekorátory CheckedInputStream resp. CheckedOutputStream usnadňují kontolu nenarušenosti InputStreamu resp. OutputStreamu pomocí kontroního součtu, jenž implementuje interfejs Checksum. Balíček java.util.zip k tomu nabízí třídy CRC32 a Adler32, které počítají vlastně jen byty a pole bytů. CRC32 crc = new CRC32( ) ; // Cyclic Redundancy Check InputStream is = new … ; CheckedInputStream cis = new CheckedInputStream( is, crc ) ; … // reading cycle long checkValue = crc.getValue( ) ; obdobně pro output PJV05

Komprese a dekomprese dat Proudy jsou konečné posloupnosti bytů či znaků jednosměrně čtených či psaných. Komprimovat lze jen proud bytů (znaky nutno vyjádřit jako byty). Deflater komprimuje ( zmenší, zahustí ) proud a Inflater dekomprimuje ( zveličí, zředí ) - do/z formátu zip, gzip anebo jar. I komprimovaný proud je jen posloupnost, která však popisuje stromovou souborovou strukturu pomocí Entry vyjadřující cestu k datům. Kompresi lze ovládat na úrovni proudu i specificky i pro každé Entry. - setMethod ( ZipOutputStream. ( DEFLATED | STORED ) ) - DEFLATED s event. užitím setLevel( 0 … 9 ) pro sílu komprese - STORED - uložení bez komprese dat – pro Entry však nutno dodat: setCrc( ) setSize( ) PJV05

java.util.zip java.util.jar Input Stream Checked InputStream Output Stream Checked OutputStream Filter InputStream Deflater InputStream Filter OutputStream Inflater OutputStream Inflater InputStream Deflater OutputStream GZIP InputStream GZIP OutputStream Zip InputStream Zip OutputStream .jar .jar Jar InputStream Jar OutputStream PJV05

java.util.zip java.util.jar java.lang Attributes Map Checksum AutoCloseable .jar java.io CRC32 Manifest Closeable Cloneable Adler32 .zip .zip ZipFile ZipEntry .jar .jar JarFile JarEntry .jar Pack200 ZipException JarException ZipError PJV05

Komprese OutputStream os = new FileOutputStream( "C:\\data.zip" ); ZipOutputStream zos = new ZipOutputStream( os ); // decorator ZipEntry ze1 = new ZipEntry( "dir1 \\ dir2 \\ YY" ); zos.putNextEntry( ze1 ); for ( int i = 0; i < 10000; i++ ) { zos.write( i ); } // 1. soubor ZipEntry ze2 = new ZipEntry( "dir1 \\ ZZ" ); zos.putNextEntry( ze2 ); for ( int i = 0; i < 10000; i++ ) { zos.write( i ); } // 2. soubor zos.close(); PJV05

Komprese Tzv. Deflater komprimuje proud do souborů typu .zip, .gzip nebo .jar. OutputStream os = new FileOutputStream( "C:\\data.zip" ); ZipOutputStream zos = new ZipOutputStream( os ); // decorator ZipEntry ze1 = new ZipEntry( "dir1 \\ dir2 \\ YY" ); zos.putNextEntry( ze1 ); for ( int i = 0; i < 10000; i++ ) { zos.write( i ); } ZipEntry ze2 = new ZipEntry( "dir1 \\ ZZ" ); zos.putNextEntry( ze2 ); zos.close(); Tzv. Inflater dekomprimuje soubory typu .zip, .gzip nebo .jar do proud. PJV05

Dekomprese InputStream is = new FileInputStream( "C:\\data.zip" ); ZipInputStream zis = new ZipInputStream( is ); // decorator ZipEntry ze; int i; while ( ( ze = zis.getNextEntry( ) ) != null ) { while ( ( i = zis.read( ) ) != -1 ) { System.out.print( i + " " ); } zis.close( ); PJV05

Dekomprese jar Ukázka jak vypsat balíčky API String fn1 = "C:/Program Files/Java/jdk1.7.0_25/jre/lib/rt.jar/" ; String fn2 = "C:/Program Files/Java/jdk1.7.0_25/src.zip" ; InputStream is = new FileInputStream( fn1 ); JarInputStream jis = new JarInputStream( is ); JarEntry je = null; while ( ( je = jis.getNextEntry( ) ) != null ) if ( je.getName( ).startsWith( "java/lang/Double" ) ) break ; int i; if ( je != null ) while ( ( i = jis.read( ) ) != -1 ) System.out.print( (char) i ); jis.close( ); PJV05

Třída ZipFile poslouží jen pro čtení komprimovaného souboru. Uložení entry a dat je patrně různé při kompresi ZipOutputStreamem Některé oblíbené programy – např. WinZip 7.0. – ukládájí data jinak než ZipOutputStream. ZipFile zf = new ZipFile ( "C:\\windata.zip" ); Enumeration en = zf.entries( ); while ( en.hasMoreElements( ) ) { System.out.print( en.nextElement( ) ; } ZipEntry ze = zf.getEntry( "dir1 / ZZ" ); InputStream is = zf.get InputStream( ze ) ; int i; while ( ( i = zis.read( ) ) != -1 ) { System.out.print( i + " " ) ; } zis.close( ) ; zf.close( ) ; PJV05 ALG