multioutputstream.java
来自「一个agent 工具包,可以开发移动设备应用,考虑了安全措施」· Java 代码 · 共 135 行
JAVA
135 行
package SOMA.telnet;
import java.io.*;
import java.util.*;
public class MultiOutputStream extends OutputStream
{
public LinkedList outs = new LinkedList();
public synchronized OutputStream getFirst()
{
return (OutputStream)outs.getFirst();
}
public synchronized OutputStream setFirst( OutputStream out )
{
return (OutputStream)outs.set( 0, out );
}
public synchronized boolean add( OutputStream out )
{
return outs.add( out );
}
public synchronized boolean remove( OutputStream out )
{
return outs.remove( out );
}
public void write(int b)
{
Iterator i = outs.iterator();
while( i.hasNext() )
{
OutputStream out = (OutputStream)i.next();
try
{
out.write( b );
out.flush();
}
catch( IOException e )
{
i.remove();
}
}
}
public void write(byte[] b)
{
Iterator i = outs.iterator();
while( i.hasNext() )
{
OutputStream out = (OutputStream)i.next();
try
{
out.write( b );
out.flush();
}
catch( IOException e )
{
i.remove();
}
}
}
public void write(byte[] b, int off, int len)
{
Iterator i = outs.iterator();
while( i.hasNext() )
{
OutputStream out = (OutputStream)i.next();
try
{
out.write( b, off, len );
out.flush();
}
catch( IOException e )
{
i.remove();
}
}
}
public void flush()
{
Iterator i = outs.iterator();
while( i.hasNext() )
{
OutputStream out = (OutputStream)i.next();
try
{
out.flush();
}
catch( IOException e )
{
i.remove();
}
}
}
public void close()
{
Iterator i = outs.iterator();
while( i.hasNext() )
{
OutputStream out = (OutputStream)i.next();
try
{
out.close();
}
catch( IOException e )
{
i.remove();
}
}
outs.clear();
}
public String toString()
{
return "[MultiOutputStream (" + hashCode() + "): " + outs.size() + " streams]";
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?