黑马程序员技术交流社区
标题:
用tcp传输文件如何让服务端接收到文件后缀呢?
[打印本页]
作者:
李楠
时间:
2011-12-28 14:35
标题:
用tcp传输文件如何让服务端接收到文件后缀呢?
本帖最后由 李楠 于 2011-12-29 10:12 编辑
如题,怎么才能接收到后缀呢?
另开一个Socket吗?能不能在一个Socket里实现呢?
作者:
侯伟浩
时间:
2011-12-28 16:13
当然用一个socket就能实现,那就是把文件对象用ObjectOutputStream流写到服务器端去,在服务器端接收时就用ObjectInputStream得到这个file对象,这样文件的所有信息都有了,包括内容和文件名。
如果还不明白我再把代码贴出来。
作者:
李楠
时间:
2011-12-28 17:48
侯伟浩 发表于 2011-12-28 16:13
当然用一个socket就能实现,那就是把文件对象用ObjectOutputStream流写到服务器端去,在服务器端接收时就用 ...
用一个流的话,穿过过去的只有文件啊,还要自己构建文件名字。文件名是如果传递的呢?
作者:
侯伟浩
时间:
2011-12-28 19:45
传过去的是文件对象!是个对象!就用file.getName()得到了文件名了,再split("\\.")取最后一个,不就得到文件的扩展名了吗!
作者:
1253431283
时间:
2011-12-28 20:18
我想问提问题的楼主的是,你传送一个文件是在jsp页面里传送还是纯用java写的。如果是纯java语言写,我也不会,但是如果你在jsp页面的向服务器传送文件,我倒是可以帮助您
作者:
颜小飞
时间:
2011-12-28 23:12
用一个socket也是可以的,你可以在socket端先把文件名发过去,然后在发文件内容。
File file=new File("file.txt");//要传输的文件
Socket s=new Socket(port, 10008);
PrintWriter out1=new PrintWriter(s.getOutputStream(), true);
BufferedReader buffile=new BufferedReader(new FileReader(file));
//把文件进行上传
out1.println(file.getName());//先把文件名发送过去
String line=null;//定义一个变量接收文本数据的一行
while((line=buffile.readLine())!=null){
out1.println(line);//socket输出流开始发送文本数据
}
s.shutdownOutput();
// out1.flush();//清除缓存
//关闭文件读取流
buffile.close();//关闭文本读取流
作者:
李楠
时间:
2011-12-29 10:12
谢谢大家,我已经搞定了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2