K čemu slouží java.io.PipedReader a java.io.PipedWriter?

Piped proudy jsou mechanismy v Jave k nastavení proudu dat mezi 2 vlákna. Pipes proudy mají dvojice proudů – vstupní a výstupní. Data zapisovaná do výstupního proudu by se měli projevit na vstupním proudu na jiném konci roury. Můžeš na Pipe proudy pohlížet jako Buffer, s připojením na každém konci.
Ukážeme si jednoduchou práci s Piped proudy. Ukázka se skládá ze dvou tříd: MyThread (Druhé vlákno nutné k Pipe) a PipeDemo1 (Ukázka pipe proudů)
T MyThread si ve svém K uloží odkaz na OT Writer, který je odvozen od třídy Stream. To je základní věc, kterou musíte mít na paměti.

JAVA
class MyThread extends Thread {
    private Writer out;
    public MyThread(Writer out) {
        this.out = out;
    }
    public void run() {
        //-Zapis na zacatek pipe.
        try {
            BufferedWriter bw = new
            BufferedWriter(out);
            bw.write( & quot; testing & quot;);
            bw.newLine();
            bw.close();
        } catch (IOException e) {
            System.err.println(e);
        }
    }
}

Pro práci s Piped proudy musíme vytvořit oba konce roury – zde takto figurují OT PipedWriter a PipedReader. K jejich propojení stačí do jedné v K uložit odkaz na druhou. Neukládejte tento odkaz do obou, ne že by to bylo technicky nemožné v teorii, ale v praxi již ano. Pro čtení si vytvořím O BufferedReader, který mi přečte posluchače – readera roury.

JAVA
public class PipeDemo1
{
    public static void main(String args[])
    throws IOException
    {
        //-Vytvoreni "roury" pipe
        PipedWriter writer = new PipedWriter();
        PipedReader reader = new PipedReader(writer);
        //-Pres vlakno zapis do pipe
        new MyThread(writer).start();
        //-Cteni z konce pipe.
        BufferedReader br = new
        BufferedReader(reader);
        String str = br.readLine();
        br.close();
        System.out.println(str);
    }
}

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *