请选择 进入手机版 | 继续访问电脑版
设为首页 收藏本站
开启辅助访问 切换到宽版

新浪微博登陆

只需一步, 快速开始

QQ登录

只需一步,快速开始

切换风格 立即注册 找回密码

Java教程网

新浪微博达人勋

1228

积分

621

帖子

71

贡献

Rank: 6Rank: 6

积分
1228

社区QQ达人活跃会员热心会员推广达人宣传达人

发表于 2016-12-16 19:52:02 | 显示全部楼层 |阅读模式
  1. import java.io.BufferedInputStream;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.FileNotFoundException;
  5. import java.io.IOException;
  6. import java.net.MalformedURLException;
  7. import java.rmi.Naming;
  8. import java.rmi.NotBoundException;
  9. import java.rmi.RemoteException;

  10. public class FileClient {

  11.     public FileClient() {
  12.         // TODO Auto-generated constructor stub
  13.     }

  14.     public static void main(String[] args) {
  15.         try {
  16.             FileDataService fileDataService = (FileDataService) Naming.lookup("rmi://localhost:9001/FileDataService");
  17.             fileDataService.upload("/Users/NeverDie/Documents/test.mp4", new FileClient().fileToByte("/Users/NeverDie/Music/test.mp4"));
  18.         } catch (MalformedURLException | RemoteException | NotBoundException e) {
  19.             // TODO Auto-generated catch block
  20.             e.printStackTrace();
  21.         }
  22.     }
  23. //这个方法比较重要,通过这个方法把一个名为filename的文件转化为一个byte数组
  24.     private byte[] fileToByte(String filename){
  25.         byte[] b = null;
  26.         try {
  27.             File file = new File(filename);
  28.             b = new byte[(int) file.length()];
  29.             BufferedInputStream is = new BufferedInputStream(new FileInputStream(file));
  30.             is.read(b);
  31.         } catch (FileNotFoundException e) {
  32.             // TODO Auto-generated catch block
  33.             e.printStackTrace();
  34.         } catch (IOException e) {
  35.             // TODO Auto-generated catch block
  36.             e.printStackTrace();
  37.         }
  38.         return b;
  39.     }
  40. }
复制代码
  1. import java.net.URL;
  2. import java.rmi.Remote;
  3. import java.rmi.RemoteException;

  4. public interface FileDataService extends Remote{

  5.     //这里的filename应该是该文件存放在服务器端的地址
  6.     public void upload(String filename, byte[] file) throws RemoteException;

  7. }
复制代码
  1. import java.io.BufferedOutputStream;
  2. import java.io.File;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6. import java.net.URL;
  7. import java.rmi.RemoteException;
  8. import java.rmi.server.RMIClientSocketFactory;
  9. import java.rmi.server.RMIServerSocketFactory;
  10. import java.rmi.server.UnicastRemoteObject;

  11. public class FileDataService_imp extends UnicastRemoteObject implements FileDataService{

  12.     public FileDataService_imp() throws RemoteException {

  13.     }

  14.     @Override
  15.     public void upload(String filename, byte[] fileContent) throws RemoteException{
  16.         File file = new File(filename);
  17.         try {
  18.             if (!file.exists())
  19.                 file.createNewFile();
  20.             BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(file));
  21.             os.write(fileContent);
  22.         } catch (FileNotFoundException e) {
  23.             // TODO Auto-generated catch block
  24.             e.printStackTrace();
  25.         } catch (IOException e) {
  26.             // TODO Auto-generated catch block
  27.             e.printStackTrace();
  28.         }

  29. ;   }

  30. }
复制代码
  1. import java.net.MalformedURLException;
  2. import java.rmi.Naming;
  3. import java.rmi.RemoteException;
  4. import java.rmi.registry.LocateRegistry;

  5. public class FileServer {

  6.     FileDataService fileDataService;

  7.     public FileServer() {
  8.         try {
  9.             fileDataService = new FileDataService_imp();
  10.             LocateRegistry.createRegistry(9001);
  11.             Naming.rebind("rmi://localhost:9001/FileDataService", fileDataService);
  12.         } catch (RemoteException e) {
  13.             // TODO Auto-generated catch block
  14.             e.printStackTrace();
  15.         } catch (MalformedURLException e) {
  16.             // TODO Auto-generated catch block
  17.             e.printStackTrace();
  18.         }


  19.     }

  20.     /**
  21.      * @param args
  22.      */
  23.     public static void main(String[] args) {
  24.         new FileServer();

  25.     }

  26. }
复制代码


来自群组: java开发组

新浪微博达人勋

2856

积分

715

帖子

712

贡献

Rank: 6Rank: 6

积分
2856
发表于 2016-12-16 19:52:35 | 显示全部楼层
路过

新浪微博达人勋

6756

积分

1712

帖子

1666

贡献

Rank: 8Rank: 8

积分
6756

社区QQ达人最佳新人活跃会员热心会员

发表于 2017-1-9 21:01:15 | 显示全部楼层
very good

新浪微博达人勋

6643

积分

1660

帖子

1661

贡献

Rank: 8Rank: 8

积分
6643
发表于 2017-1-10 12:11:30 | 显示全部楼层
沙发位出租,有意请联系电话:13838384381

新浪微博达人勋

6599

积分

1649

帖子

1650

贡献

Rank: 8Rank: 8

积分
6599
发表于 2017-1-23 12:52:54 | 显示全部楼层
……

新浪微博达人勋

3092

积分

775

帖子

772

贡献

Rank: 8Rank: 8

积分
3092
发表于 2017-2-8 11:53:04 | 显示全部楼层
一直在看

新浪微博达人勋

2832

积分

712

帖子

706

贡献

Rank: 6Rank: 6

积分
2832
发表于 2017-2-11 11:55:24 | 显示全部楼层
传说中的沙发???哇卡卡

新浪微博达人勋

6871

积分

1760

帖子

1682

贡献

Rank: 8Rank: 8

积分
6871

社区QQ达人最佳新人活跃会员热心会员灌水之王突出贡献

发表于 2017-2-11 12:59:12 | 显示全部楼层
我也是坐沙发的

新浪微博达人勋

3036

积分

759

帖子

759

贡献

Rank: 8Rank: 8

积分
3036
发表于 2017-2-24 13:11:02 | 显示全部楼层
鄙视楼下的顶帖没我快,哈哈

新浪微博达人勋

7421

积分

1968

帖子

1764

贡献

Rank: 8Rank: 8

积分
7421

社区QQ达人最佳新人活跃会员热心会员

发表于 2017-2-26 19:33:00 | 显示全部楼层
1v1飘过
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋|手机版|Archiver|Java教程网    

GMT+8, 2019-5-27 19:54 , Processed in 0.328125 second(s), 43 queries .

Powered by Discuz X3.2

© 2001-2013 JAVA教程网

快速回复 返回顶部 返回列表