KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > gnu > jemacs > buffer > InputStreamHandler


1 package gnu.jemacs.buffer;
2 import java.io.*;
3 import gnu.mapping.*;
4
5 /** Insert input from an InputStream into a buffer.
6  * This is typically output from an inferior process. */

7
8 class InputStreamHandler extends Thread JavaDoc
9 {
10   ProcessMode mode;
11   InputStream in;
12   BufferWriter wr;
13   Reader in_r;
14   char[] buffer;
15
16   public InputStreamHandler(InputStream in, ProcessMode mode)
17   {
18     this.in = in;
19     this.in_r = new InputStreamReader(in);
20     this.wr = new BufferWriter(mode.processMark, true);
21     this.mode = mode;
22   }
23
24   public void run()
25   {
26     try
27       {
28     buffer = new char[512];
29     for (;;)
30       {
31         int avail = in_r.read(buffer);
32         if (avail <= 0)
33           break;
34         wr.buffer = buffer;
35         wr.count = avail;
36         mode.invoke(wr);
37         //wr.write(buffer, 0, avail);
38
//wr.flush();
39
}
40     in.close();
41       }
42     catch (Exception JavaDoc ex)
43       {
44     throw new WrappedException(ex);
45       }
46   }
47 }
48
Popular Tags