- 文件上传:服务器端接收到客户端文件中的数据,向服务器端的另一个文件中写出
- 接收到文件内容,写到某个文件中
这里的数据是文件中的内容!
**
server:
import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.ServerSocket;import java.net.Socket;public class Server {public static void main(String[] args) throws IOException {//建立服务器ServerSocket serverSocket = new ServerSocket(8888);Socket socket = serverSocket.accept();//获取流InputStream in = socket.getInputStream();//获取到上传文件的内容,要有一个文件FileOutputStream fos = new FileOutputStream("a.txt");//一个字节读取,循环读取int b = -1;while((b=in.read())!=-1){//一次读一个字节,最终文件接收了所有的上传数据fos.write(b);}//关闭io流fos.close();//给客户端返回一个响应 - okOutputStream out = socket.getOutputStream();String content = "o";out.write(content.getBytes());//关闭socketsocket.close();serverSocket.close();}}
上传文件内容:
- 读取文件内容
- 发生给服务器
client:**
import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.Socket;public class Client {public static void main(String[] args) throws IOException {//建立客户端Socket socket = new Socket("localhost", 8888);//建立连接后,获取socket的io流OutputStream out = socket.getOutputStream();//获取文件对象FileInputStream fis = new FileInputStream("aa.txt");//读取文件内容int b = -1;while((b=fis.read())!=-1){//输出数据给服务器out.write(b);}//关闭流fis.close();//告知服务器,不再发生数据了socket.shutdownOutput();//获取输入流,接收服务器端的响应InputStream in = socket.getInputStream();int read = in.read();System.out.println((char)read);//关闭socketsocket.close();}}
