如何将bufferedInputStream附加到字符串?

时间:2013-04-22 21:09:25

标签: java buffer inputstream

基本上,我试图通过将现有的BufferedInputStream(System.in)切换到我自己的缓冲输入流来自动化击键。我想创建一个BufferedInputStream()对象,它附加到一个可以异步控制的字符串。

这就是我想做的事情。

StringBuilder stringBuilder=new StringBuilder;
BufferedInputStream output=new something(new something(stringBuilder));

目前我能看到的唯一选项是检查文件是否存在,然后打开缓冲输入流。

我不确定如何做到这一点,但我需要写一些可以取代System.in inpustream的东西。

1 个答案:

答案 0 :(得分:0)

我在这里放了10个小时...这就是我想出的...... Piped Streams是我需要的

    int BUFFER = 4096;
    PipedOutputStream toAppPipedOutputStream;
    PipedInputStream toAppPipedInputStream;

    static BufferedReader fromAppBufferedReaderfinal;
    BufferedOutputStream fromAppOutputStream;
    PipedOutputStream fromAppPipedOutputStream;
    PipedInputStream fromAppPipedInputStream;

    /* constructor sets up logging and parameters */

           try { 
                fromAppPipedInputStream = new PipedInputStream(BUFFER);
                fromAppOutputStream=new BufferedOutputStream(new PipedOutputStream(fromAppPipedInputStream));
                fromAppBufferedReaderfinal=new BufferedReader(new InputStreamReader(fromAppPipedInputStream));
                CASUAL.Log.out = new PrintStream(fromAppOutputStream);

                toAppPipedInputStream = new PipedInputStream(BUFFER);
                toAppPipedOutputStream=new PipedOutputStream(toAppPipedInputStream);
                CASUAL.CASUALInteraction.in= new BufferedReader(new InputStreamReader(toAppPipedInputStream));

在我的日志和输出类中,默认情况下,我写入指向System.in的缓冲读写器。我可以劫持它,因为它是一个公共静态,这是可能的。现在我可以只读取和写入我的应用程序,就像它在我自己的应用程序中的命令行上运行一样