1. Rmi Service Interface
package com.sinosuperman.rmiio2;import java.rmi.Remote;import java.rmi.RemoteException;import com.healthmarketscience.rmiio.RemoteInputStream;public interface RmiioService2 extends Remote {public void sendFile(String fileName, RemoteInputStream inFile) throws RemoteException;}
2. Rmi service implementation class
package com.sinosuperman.rmiio2;import java.io.BufferedInputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.Serializable;import java.rmi.RemoteException;import java.rmi.server.UnicastRemoteObject;import com.healthmarketscience.rmiio.RemoteInputStream;import com.healthmarketscience.rmiio.RemoteInputStreamClient;public class RmiioServiceImpl2 extends UnicastRemoteObject implements Serializable, RmiioService2 {private static final long serialVersionUID = -5776252535031796604L;public RmiioServiceImpl2() throws RemoteException {}@Overridepublic void sendFile(String fileName, RemoteInputStream inFile) throws RemoteException {try {InputStream inStream = RemoteInputStreamClient.wrap(inFile);store(inStream, "temp" + File.separator + fileName); } catch (IOException e) {e.printStackTrace();}}private static void store(InputStream inStream, String filePath) {try {BufferedInputStream inStreamBuff = new BufferedInputStream(inStream); FileOutputStream fileOutStream;fileOutStream = new FileOutputStream(filePath); int size = 0; byte[] byteBuff = new byte[1024]; while ( (size = inStreamBuff.read(byteBuff)) != -1) { fileOutStream.write(byteBuff, 0, size); } fileOutStream.close(); inStreamBuff.close(); } catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();} }}