package org.yajul.io;
import java.io.*;
/**
* A slow writer...
* <br>
* User: josh
* Date: 6/29/11
* Time: 4:02 PM
*/
public class SlowOutput implements Runnable {
private int limit;
private PrintStream ps;
private long sleepMillis;
private PipedInputStream slowInput;
public SlowOutput(int limit, long sleepMillis) throws IOException {
this.limit = limit;
this.sleepMillis = sleepMillis;
slowInput = new PipedInputStream();
final PipedOutputStream pipe = new PipedOutputStream(slowInput);
ps = new PrintStream(pipe);
}
public InputStream getSlowInput() {
return slowInput;
}
public void run() {
writeStuff(limit,ps,sleepMillis);
}
public static void writeStuff(int limit, PrintStream ps, long sleepMillis) {
for (int i = 0; i < limit; i++) {
ps.println("i=" + i);
ps.flush();
if (sleepMillis > 0) {
try {
Thread.sleep(sleepMillis);
} catch (Exception ignore) {
}
}
}
ps.close();
}
}