Java API——RMIIO入門教程(2)遠端流傳輸示例之RMIIO服務原始碼
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 {
}
@Override
public 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 block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相關文章
- 【go-web服務端】入門教程GoWeb服務端
- Java中OpenAI API客戶端原始碼教程JavaOpenAIAPI客戶端原始碼
- spring cloud feign實現遠端呼叫服務傳輸檔案SpringCloud
- Nacos(二)原始碼分析Nacos服務端註冊示例流程原始碼服務端
- Dubbo原始碼之服務端的釋出原始碼服務端
- 本地MinIO儲存服務Java遠端呼叫上傳檔案Java
- git 入門教程之遠端倉庫Git
- 2.CAS SSO單點登入服務端環境搭建原始碼服務端原始碼
- [java IO流]之 基本資料型別輸入輸出流Java資料型別
- Spring Cloud入門教程(五):API服務閘道器(Zuul) 上SpringCloudAPIZuul
- Java 輸入輸出流Java
- 2.CAS SSO單點登入服務端環境搭建之原始碼詳細解說服務端原始碼
- Netty入門一:服務端應用搭建 & 啟動過程原始碼分析Netty服務端原始碼
- [java IO流]之 鍵盤顯示器輸入輸出流(System)Java
- Java NIO.2系列文章之非同步通道API入門Java非同步API
- linux windows遠端傳輸工具LinuxWindows
- netty原始碼分析之服務端啟動全解析Netty原始碼服務端
- Spring Cloud系列(三):Eureka原始碼解析之服務端SpringCloud原始碼服務端
- 直播app原始碼,Java的輸入輸出APP原始碼Java
- fold 命令入門示例教程
- Java使用HttpClient實現遠端服務呼叫JavaHTTPclient
- Ubuntu開啟ssh服務遠端登入Ubuntu
- 2.關於CAS SSO單點登入服務端環境搭建原始碼服務端原始碼
- LittleVGL (LVGL)乾貨入門教程二之LVGL的輸入裝置(indev)API對接。devAPI
- 聊聊Dubbo(九):核心原始碼-服務端啟動流程2原始碼服務端
- java WebSocket 服務端程式碼JavaWeb服務端
- hanlp 載入遠端詞庫示例HanLP
- Dubbo原始碼之服務引用原始碼
- 影片監控遠端傳輸方案
- Android入門教程 | 四大元件之Service(前臺服務,後臺服務)Android元件
- java之使用CompletableFuture入門2Java
- 使用java登入遠端LINUX並對服務實現各種操作JavaLinux
- (2)什麼是服務拆分和遠端呼叫
- Nuxt.js服務端渲染入門UXJS服務端
- 2.關於CAS SSO單點登入服務端環境搭建原始碼分析服務端原始碼
- [菜鳥SpringCloud入門]第四章:遠端呼叫服務實戰SpringGCCloud
- java版gRPC實戰之三:服務端流JavaRPC服務端
- Vue 服務端渲染(SSR)、Nuxt2 - 從入門到實踐Vue服務端UX
- Java讀原始碼之ReentrantLock(2)Java原始碼ReentrantLock