局域网内将客户端的文件拷贝到服务器端
我想问问,在java中利用什么技术比较合适?
用java.nio可不可以?
如果文件很大,用BUFFERBYTE会不会出现内存溢出的问题?
文件会不会因为系统的操作字符不统一造成错误传输,或者文件缺少字符
问题点数:100、回复次数:18Top
1 楼NotLaw(风风)回复于 2005-01-24 14:01:22 得分 0
希望高手多多提醒,Top
2 楼NotLaw(风风)回复于 2005-01-24 14:04:01 得分 0
up,希望高手指条明路Top
3 楼NotLaw(风风)回复于 2005-01-24 14:07:18 得分 0
自己upTop
4 楼GJA106(中文字符)回复于 2005-01-24 14:14:06 得分 45
安全/稳妥一点可以用RMI或FTP来作。
自己写代码灵活一点。
1.用java肯定可以实现这个功能。
2.传输文件过程不应该是一次就把文件数据读到内存中,而是一块一块(1024/5012字节)的读和写。
3.肯定会有操作字符的冲突,要作适当的转换,特别是文件名称。文件内容通过byte方式来读写可以避免这个问题。
Top
5 楼wangzhanlili(小木头)回复于 2005-01-24 14:21:09 得分 0
用rmi 来实现 作为对象传输Top
6 楼prok(换换口味)回复于 2005-01-24 14:50:38 得分 0
rmiTop
7 楼NotLaw(风风)回复于 2005-01-24 14:53:45 得分 0
请问:
用nio操作这块可行吗?
我需要从客户端把上百个文件传到服务器。
那些文件的后缀也不太一样Top
8 楼GJA106(中文字符)回复于 2005-01-24 15:02:13 得分 55
1.nio只是文件流操作,是对io包的改进和加强,不起到网络传输的作用。必需是:nio+socket或者nio+ftp或者nio+rmi或者nio+XXX...
2.“我需要从客户端把上百个文件传到服务器那些文件的后缀也不太一样”。
没有问题,通过listFiles来取文件,然后一个一个的传,文件的后缀对读写文件内容没有影响
File file = new File("目录");
File[] files = file.listFiles();
....Top
9 楼NotLaw(风风)回复于 2005-01-24 15:09:00 得分 0
GJA106(中文字符)谢谢:)
我大致的看了nio这个包
里面有socket的操作类
我就是想用它来做一个试试~
在网上找了半天没找到例子
我现在没有一个清晰的思路,正着急呢~
谁要是有这方面的经验能不能说说Top
10 楼NotLaw(风风)回复于 2005-01-24 15:32:21 得分 0
up,我继续up,希望能有所收获Top
11 楼NotLaw(风风)回复于 2005-01-24 15:40:13 得分 0
关于NIO+socket方面能不能给点经验之谈Top
12 楼sandyen(杉叶)回复于 2005-01-24 15:51:25 得分 0
你用Nio+socket也是也个通讯程序。为什么不直接再服务器端建立ftp服务器呢?
那样更安全,程序更稳定。而且也更容易实现。网上有好多ftp上传文件的代码,有了这些api你基本上没有任何代码量。
如果不行的话,你还可以通过windows认证的方式进行文件copy。在程序中调用windows命令登录服务器,然后用apache提供的commons-io-1.0.jar里面的文件copy就可以了,也比较简单。
如果自己写的话,那是最麻烦的。Top
13 楼NotLaw(风风)回复于 2005-01-24 16:13:57 得分 0
ftp可以实现那种实时检查文件,一旦发现就自动传输的功能吗?
我去网上看看。
用nio的想法如果可行,看来会很麻烦,可是我总感觉即便是用ftp也会用到nio的操作
还有你说的windows认证的方法copy我也是第一次听说
我去看看
如果这个贴就这么结了,我总是不甘心
这个nio我还是想弄的明白一点,他里面的SocketChannel等等。。
很像socket,但是又不太一样
客户端和他连接上后怎么互相传文件呢???
我再试试
如果今天晚上要是没什么新收获我就结帖
感谢两位挂星的。
谢谢Top
14 楼NotLaw(风风)回复于 2005-01-24 16:25:01 得分 0
再顶一顶Top
15 楼NotLaw(风风)回复于 2005-01-24 16:31:52 得分 0
要是再来两三个高手,讨论讨论就更好了~~~
思路开阔了,但是细节上还是模糊Top
16 楼sandyen(杉叶)回复于 2005-01-24 16:38:12 得分 0
如果文件存在就上传这个功能很简单呀,设置一个定时器(Timer),定时检查就可以了。
nio主要是针对以前的io做了一些改进,网上这方面的东西也很多。跟socket有关的主要就是一个轮寻查找客户端的连接,解决了一起那经典模式的,一个客户端连接要建议一个线程来处理的问题。
还有就是一些buffer功能更强大了。
建议使用ftp
或者windows中的文件copyTop
17 楼NotLaw(风风)回复于 2005-01-24 16:41:29 得分 0
ok~
那我结分了~
一个45
一个55
两位别嫌弃Top
18 楼bs221cn()回复于 2005-01-25 14:13:17 得分 0
upTop




