Java小例子:通过Socket发送和接收文件 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-17
ALUE}
182. *
183. * @param hostname 接收端主机名或 IP 地址
184. * @param port 接收端端口号
185. * @param filepath 文件路径
186. *
187. * @throws IOException 如果读取文件或发送失败
188. */
189. public void sendFile(String hostname, int port, String filepath) throws IOException {
190. File file = new File(filepath);
191. FileInputStream is = new FileInputStream(filepath);
192.
193. Socket socket = new Socket(hostname, port);
194. OutputStream os = socket.getOutputStream();
195.
196. try {
197. int length = (int) file.length();
198. System.out.println("发送文件:" + file.getName() + ",长度:" + length);
199.
200. // 发送文件名和文件内容
201. writeFileName(file, os);
202. writeFileContent(is, os, length);
203. } finally {
204. os.close();
205. is.close();
206. }
207. }
208.
209. // 输出文件内容
210. private void writeFileContent(InputStream is, OutputStream os, int length) throws IOException {
211. // 输出文件长度
212. os.write(i2b(length));
213.
214. // 输出文件内容
215. byte[] buffer = new byte[4096];
216. int size;
217. while ((size = is.read(buffer)) != -1) {
218. os.write(buffer, 0, size);
219. }
220. }
221.
222. // 输出文件名
223. private void writeFileName(File file, OutputStream os) throws IOException {
224. byte[] fn_bytes = file.getName().getBytes();
225.
226. os.write(i2b(fn_bytes.length)); // 输出文件名长度
227. os.write(fn_bytes); // 输出文件名
228. }
229.} |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Java小例子:通过Socket发送和接收文件 - 编程入门网的所有评论