PipedStream

1408 ワード

import java.io.*;

/*
 : 。 。
*/

class Input implements Runnable
{

	private PipedInputStream pis;
	Input(PipedInputStream pis)
	{
		this.pis = pis;
	}
	public void run()
	{
		try
		{
			byte[] buf = new byte[1024];

			int len = pis.read(buf);

			System.out.println(new String(buf,0,len));

			pis.close();
		}
		catch (Exception e)
		{
			System.out.println(e.toString());
		}
	}
}


class Output implements Runnable
{

	private PipedOutputStream pos;
	Output(PipedOutputStream pos)
	{
		this.pos = pos;
	}
	public void run()
	{
		try
		{
			Thread.sleep(4000);
			pos.write("piped come in".getBytes());

			pos.close();
		}
		catch (Exception e)
		{
			System.out.println(e.toString());
		}
		
	}
}

class  PipedStream
{
	public static void main(String[] args) throws IOException
	{

		PipedInputStream pis = new PipedInputStream();
		PipedOutputStream pos = new PipedOutputStream();

		pis.connect(pos);

		new Thread(new Input(pis)).start();
		new Thread(new Output(pos)).start();
	}
}