Java网络编程 - 客户端向服务器端发送文件的简单实现

Posted gjqdream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java网络编程 - 客户端向服务器端发送文件的简单实现相关的知识,希望对你有一定的参考价值。

1、Client

package cn.qi.Client;

import java.io.*;
import java.net.Socket;

public class Client 
    Socket clientSocket;
    Client() 
        // 建立连接到服务器端的socket
        try 
            clientSocket = new Socket("127.0.0.1", 5000);
         catch (IOException e) 
            e.printStackTrace();
        
    

    public void readFileAndSent() throws IOException 
        OutputStream os = clientSocket.getOutputStream();
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os));

        // 读文件
        String path = this.getClass().getClassLoader().getResource("./prop/text.txt").getPath();
        FileReader fr = new FileReader(path);
        BufferedReader br = new BufferedReader(fr);
        String str = null;
        while((str = br.readLine()) != null) 
            System.out.println(str);
            // 每读一行,写一行
            bw.write(str);
            // 获取当前OS的换行符并写入
            bw.write(System.getProperty("line.separator"));
            bw.flush();
        

        // 关闭流
        bw.close();
        br.close();
        fr.close();

        clientSocket.close();
    

 

2、Server

package cn.qi.Server;

import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;

public class Server 
    ServerSocket serverSocket;
    Server() 
        // 建立severSocket,监听对应端口
        try 
            serverSocket = new ServerSocket(5000);
         catch (IOException e) 
            e.printStackTrace();
        
    

    public void readFileAndWrite() throws IOException 
        // 获取写入路径
        String path = this.getClass().getClassLoader().getResource("./prop/").getPath();
        // 服务器端写文件
        FileWriter fw = new FileWriter(path+"textSocket.txt");
        BufferedWriter bw = new BufferedWriter(fw);

        // 写的内容来自网络端
        while (true) 
            Socket socket = serverSocket.accept();
            InputStream is = socket.getInputStream();
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String str = null;
            while((str = br.readLine()) != null) 
                // 读到了客户端发送的信息
                bw.write(str);
                // 获取当前OS的换行符并写入
                bw.write(System.getProperty("line.separator"));
                bw.flush();
            

            // 关闭流
            br.close();

            socket.close();
        
    

 

以上是关于Java网络编程 - 客户端向服务器端发送文件的简单实现的主要内容,如果未能解决你的问题,请参考以下文章

使用 Dojo 文件上传客户端向 Java 服务器端发送附加数据

java客户端与服务器端

java实现Socket客户端向服务端发送信息

Java TCP 网络通信编程

Java实现一个简单的网络聊天程序

JSP执行流程