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.
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.
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);
}
}