实现简单的文件传输功能上:客户端 2020-05-28 阅读数:次 🔤字数统计: 517字 | 📖阅读时长≈ 2分 通过 socket 简单实现了文件传输功能上,客户端篇 客户端代码 client.java12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788package files_upload;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStreamReader;import java.net.Socket;import java.util.Properties;/** * 客户端:上传文件到服务器 * * @author quanluo * */public class TaskFileClient { private Socket client; public static void main(String[] args) throws Exception { System.out.println("Client"); new TaskFileClient(); } public TaskFileClient() throws Exception { // 1. 读取配置文件中的服务器端 ip 地址,端口号,要上传的文件路径 Properties prop = new Properties(); // 读取配置文件 FileInputStream fis = (new FileInputStream("E:\\eclipse-workspace\\files_upload\\bin\\files_upload\\fileClient.properties")); // 使用 GBK 字符集,防止加载配置文件时中文乱码 prop.load(new InputStreamReader(fis, "GBK")); String ip = prop.getProperty("ip"); int port = Integer.parseInt(prop.getProperty("port")); String fileName = prop.getProperty("filename"); // 检查该文件是否存在,不存在则程序结束 File file = new File(fileName); if (!file.exists()) { System.out.println("待上传的文件不存在,运行结束!"); return; } // 2. 创建客户端 client = new Socket(ip, port); // 3. 操作 调用upload()方法上传文件 upload(file); } // 上传文件 private void upload(File file) throws IOException { // 将 client 的输出流包装为 DataOutputStream DataOutputStream dos = new DataOutputStream(client.getOutputStream()); // 先传文件名 dos.writeUTF(file.getName()); // 创建FileInputStream对象 FileInputStream fis = new FileInputStream(file); // 定义缓冲区,边读边传 byte buffer[] = new byte[1024]; // 1kb int length = -1; // 文件读取标识 // 将输出流中的数据读到缓冲区,length > 0 则代表数据未读取完毕 while((length = fis.read(buffer)) != -1) { // 发送此数据 dos.write(buffer, 0, length); } // 关闭客户端输出流,发送结束 client.shutdownOutput(); fis.close(); // 接收服务端返回的结果,并输出到控制台 BufferedReader reader = new BufferedReader(new InputStreamReader(client.getInputStream())); System.out.println(reader.readLine()); // 关闭客户端 client.close(); }} 配置文件 fileClient.properties123ip=192.168.1.107port=18889filename=C:\\Users\\Administrator\\Desktop\\Quicksort.mkv 赏 谢谢你请我喝咖啡 支付宝 微信 -------------本文结束感谢您的阅读------------- Java socket fileupload 扫一扫,分享到微信