streams
Class SFOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by java.io.FilterOutputStream
          extended by streams.SFOutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public class SFOutputStream
extends java.io.FilterOutputStream

Trida, ktera umoznuje zakodovani dat Shanon-Fanovym kodovanim. Pouziva se semiadaptivni verze algoritmu, datovy model je odeslan jako cetnosti jednotlivych bytu zakodovanych Fibonacciho kodem radu 2.


Field Summary
 
Fields inherited from class java.io.FilterOutputStream
out
 
Constructor Summary
SFOutputStream(java.io.OutputStream os)
          Vytvori tridu - stream - ktera bude zapisovat do zadaneho streamu kodovana data.
 
Method Summary
 void close()
          Uzavreni proudu.
protected static void doCodes(ByteInfo[] byteTable, int from, int to, long size)
          Makes code for each byte in bytetable.
 void flush()
          Zavolanim teto metody se vytvori kody pro jednotlive bajty a do vystupniho proudu je zapsan statisticky model (cetnosti bajtu) a zakodovana data.
 void write(int b)
          Metoda pro zapis dat do streamu - data jsou kopirovana do temp souboru a jsou pocitany pocty bajtu.
 
Methods inherited from class java.io.FilterOutputStream
write, write
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SFOutputStream

public SFOutputStream(java.io.OutputStream os)
               throws pradny.UnsupportedOutputException,
                      java.io.IOException
Vytvori tridu - stream - ktera bude zapisovat do zadaneho streamu kodovana data.

Parameters:
os - vystupni proud
Throws:
pradny.UnsupportedOutputException - if unsuitable output stream used
java.io.IOException - if a I/O error has occurred
Method Detail

write

public void write(int b)
           throws java.io.IOException
Metoda pro zapis dat do streamu - data jsou kopirovana do temp souboru a jsou pocitany pocty bajtu.

Overrides:
write in class java.io.FilterOutputStream
Parameters:
b - data k zapisu (byte)
Throws:
java.io.IOException - pri i/o chybe

flush

public void flush()
           throws java.io.IOException
Zavolanim teto metody se vytvori kody pro jednotlive bajty a do vystupniho proudu je zapsan statisticky model (cetnosti bajtu) a zakodovana data. Po provedeni flush() neni dalsi zapis mozny.

Specified by:
flush in interface java.io.Flushable
Overrides:
flush in class java.io.FilterOutputStream
Throws:
java.io.IOException - pri I/O chybe

close

public void close()
           throws java.io.IOException
Uzavreni proudu. Provede se i metoda flush().

Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.FilterOutputStream
Throws:
java.io.IOException - if an I/O error has occcured

doCodes

protected static void doCodes(ByteInfo[] byteTable,
                              int from,
                              int to,
                              long size)
Makes code for each byte in bytetable.

Parameters:
byteTable - Table with information about byte - must be sorted by count
from - begin index in byteTable array, used in recursive calls
to - end index in byteTable array, used in recursive calls
size - count of bytes in from - to byteTable range