先我们创建一个上传下载公共文件流线程类
-
package
com.rose.common.frame.mina;
-
-
import
java.io.BufferedInputStream;
-
import
java.io.BufferedOutputStream;
-
import
java.io.IOException;
-
import
java.io.InputStream;
-
import
java.io.OutputStream;
-
-
-
public
class IoStreamThreadWork extendsThread{
-
static final int BUFFER_SIZE 1024*2;=
-
-
BufferedInputStream bis;
-
BufferedOutputStream bos;
-
-
-
BufferedInputStream getBis() {
-
bis;
-
} -
-
void setBis(BufferedInputStream bis) {
-
= bis;
-
} -
-
BufferedOutputStream getBos() {
-
bos;
-
} -
-
void setBos(BufferedOutputStream bos) {
-
= bos;
-
} -
-
IoStreamThreadWork(InputStream in, OutputStream os){
-
bis = BufferedInputStream(in);
-
bos = BufferedOutputStream(os);
-
} -
synchronized void run() {
-
bufferByte new= byte[BUFFER_SIZE];
-
tempData 0;=
-
{
-
= 1bis.read(bufferByte)) != - ){
-
bos.write(bufferByte, tempData);
-
} -
{
-
bos.flush(); -
} (IOException e) {
-
e.printStackTrace(); -
} -
} (IOException e) {
-
e.printStackTrace(); -
}
-
{
-
bos.close(); -
bis.close(); -
} (IOException e) {
-
e.printStackTrace(); -
} -
} -
} -
}
写一个服务器端
-
package
com.rose.common.frame.mina;
-
-
import
java.io.File;
-
import
java.io.FileNotFoundException;
-
import
java.io.FileOutputStream;
-
import
java.io.IOException;
-
import
java.io.InputStream;
-
import
java.io.OutputStream;
-
import
java.net.InetSocketAddress;
-
import
java.util.concurrent.ArrayBlockingQueue;
-
import
java.util.concurrent.ThreadPoolExecutor;
-
import
java.util.concurrent.TimeUnit;
-
-
import
org.apache.mina.core.filterchain.DefaultIoFilterChainBuil der;
-
import
org.apache.mina.core.session.IoSession;
-
import
org.apache.mina.filter.codec.serialization.ObjectSerializationCodec Factory;
-
import
org.apache.mina.filter.logging.LoggingFilter;
-
import
org.apache.mina.handler.stream.StreamIoHandler;
-
import
org.apache.mina.transport.socket.nio.NioSocketAcceptor;
-
-
-
public
class MinaFileServer extendsStreamIoHandler{
-
static final int PORT 8888;=