我有這樣的代碼在主類:的InputStream,OutputStream的一個文件
IOUtil.readWrite(telnet.getInputStream(), telnet.getOutputStream(),
System.in, System.out);
這工作得非常好,因爲System.in從用戶的System.out河畔獲取輸入打印所有輸出。
我試圖改變這一點,所以不是System.in可能是另一個InputStream對象,它每次從文件讀取一行請求輸入,並且System.out也可以是一個Object,它寫入所有輸出到一個文件。
的IOUtil類如下:
package examples;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import org.apache.commons.net.io.Util;
public final class IOUtil
{
public final static void readWrite(final InputStream remoteInput,
final OutputStream remoteOutput,
final InputStream localInput,
final OutputStream localOutput)
{
Thread reader, writer;
reader = new Thread()
{
public void run()
{
int ch;
try
{
while (!interrupted() && (ch = localInput.read()) != -1)
{
remoteOutput.write(ch);
remoteOutput.flush();
}
}
catch (IOException e)
{
//e.printStackTrace();
}
}
}
;
writer = new Thread()
{
public void run()
{
try
{
Util.copyStream(remoteInput, localOutput);
}
catch (IOException e)
{
e.printStackTrace();
System.exit(1);
}
}
};
writer.setPriority(Thread.currentThread().getPriority() + 1);
writer.start();
reader.setDaemon(true);
reader.start();
try
{
writer.join();
reader.interrupt();
}
catch (InterruptedException e)
{
}
}
你的問題是什麼? – squawknull 2011-05-15 02:34:41