我正在尝试创建一个 InputStream 类,它的行为类似于 System.in InputStream 但可以以编程方式添加到(可以动态添加到的无限 InputStream )
如果您无法理解我的意思,这就是我所写并尝试过的
public class QueuedInputStream extends InputStream {
private LinkedList<Character> list;
public QueuedInputStream() {
list = new LinkedList<Character>();
}
@Override
public int read() throws IOException {
while (list.isEmpty()) {
try {
Thread.sleep(1);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
int value = (byte)list.get(0).charValue();
list.remove();
return value;
}
public void queue(String s) {
char[] chars = s.toCharArray();
for(int i = 0; i < chars.length; i++) {
list.add(chars[i]);
}
}
}
我在正确的轨道上吗?还是我尝试这样做完全错了?如果您想让我解释更多,请随时询问