现在的位置: 首页 > 综合 > 正文

关于mina的文件上传代码示例

2013年08月04日 ⁄ 综合 ⁄ 共 2479字 ⁄ 字号 评论关闭
先我们创建一个上传下载公共文件流线程类
Java代码 复制代码
  1. package com.rose.common.frame.mina;
      
  2.   
  3. import java.io.BufferedInputStream;
      
  4. import java.io.BufferedOutputStream;
      
  5. import java.io.IOException;
      
  6. import java.io.InputStream;
      
  7. import java.io.OutputStream;
      
  8.   
  9.   
  10. public class IoStreamThreadWork extends Thread{
      
  11.     public static final int BUFFER_SIZE 1024*2;
      
  12.        
  13.     private BufferedInputStream bis;
      
  14.     private BufferedOutputStream bos;
      
  15.        
  16.        
  17.     public BufferedInputStream getBis() {
      
  18.         return bis;
      
  19.     }   
  20.   
  21.     public void setBis(BufferedInputStream bis) {
      
  22.         this.bis bis;
      
  23.     }   
  24.   
  25.     public BufferedOutputStream getBos() {
      
  26.         return bos;
      
  27.     }   
  28.   
  29.     public void setBos(BufferedOutputStream bos) {
      
  30.         this.bos bos;
      
  31.     }   
  32.   
  33.     public IoStreamThreadWork(InputStream in, OutputStream os){
      
  34.         bis new BufferedInputStream(in);
      
  35.         bos new BufferedOutputStream(os);
      
  36.     }   
  37.     public synchronized void run() {
      
  38.         byte[] bufferByte new byte[BUFFER_SIZE];
      
  39.         int tempData 0;
      
  40.         try {
      
  41.             while((tempData bis.read(bufferByte)) != -1 ){
      
  42.                 bos.write(bufferByte, 0tempData);
      
  43.             }   
  44.             try {
      
  45.                 bos.flush();   
  46.             catch (IOException e) {
      
  47.                 e.printStackTrace();   
  48.             }   
  49.         catch (IOException e) {
      
  50.             e.printStackTrace();   
  51.         }finally{
      
  52.             try {
      
  53.                 bos.close();   
  54.                 bis.close();   
  55.             catch (IOException e) {
      
  56.                 e.printStackTrace();   
  57.             }   
  58.         }   
  59.     }   
  60.  

写一个服务器端

Java代码 复制代码
  1. package com.rose.common.frame.mina;
      
  2.   
  3. import java.io.File;
      
  4. import java.io.FileNotFoundException;
      
  5. import java.io.FileOutputStream;
      
  6. import java.io.IOException;
      
  7. import java.io.InputStream;
      
  8. import java.io.OutputStream;
      
  9. import java.net.InetSocketAddress;
      
  10. import java.util.concurrent.ArrayBlockingQueue;
      
  11. import java.util.concurrent.ThreadPoolExecutor;
      
  12. import java.util.concurrent.TimeUnit;
      
  13.   
  14. import org.apache.mina.core.filterchain.DefaultIoFilterChainBuilder;
      
  15. import org.apache.mina.core.session.IoSession;
      
  16. import org.apache.mina.filter.codec.serialization.ObjectSerializationCodecFactory;
      
  17. import org.apache.mina.filter.logging.LoggingFilter;
      
  18. import org.apache.mina.handler.stream.StreamIoHandler;
      
  19. import org.apache.mina.transport.socket.nio.NioSocketAcceptor;
      
  20.   
  21.   
  22. public class MinaFileServer extends StreamIoHandler{
      
  23.     public static final int PORT 8888;
      

抱歉!评论已关闭.