文件上传分析图解。
1.客户端:输入流,从硬盘读取文件数据到程序中;
2.客户端:输出流,写出文件数据到服务器端;
3.服务端:输入流,读取文件数据到服务端程序;
4.服务端:输出流,写出文件数据到服务器硬盘中。
注意:客户端和服务器端和本地硬盘进行读写,需要使用自己创建的字节流对象(本地流)
客户端和服务器之间读写,必须使用Socket中提供的字节流对象(网络流)
文件上传的原理,就是文件的复制。
public class TCPCFileClient { public static void main(String[] args) throws IOException { // 本地IO输入流读取文件 FileInputStream fis = new FileInputStream("D:\\a\\a.txt"); byte[] bytes = new byte[1024]; int len = fis.read(bytes); // 网络输出流写出文件到服务器 Socket socket = new Socket("127.0.0.1",8888); OutputStream os = socket.getOutputStream(); os.write(bytes,0,len); // 数组是定长的,我们只写出读取到的部分即可 System.out.println("读取到客户端的文件数据为:" + new String(bytes,0,len));