提问,有关客户端和服务端之间传输的问题,求大神们看看

我先在Client端读取了Emplist.xml文件,然后转换为字节流传输给Server端,再让Server端接收并读取,然后再写出到一个新的文件EmpList。但为什么文件里没有东西。如图:图片说明图片说明

在while里对bos要用flush()。因为你写的东西还缓存在缓冲区,没有写到存储器上。所以文件里看不到东西。

首先确定客户端东西写过来了吗?在客户端和服务端都别忘了刷新,,对于字符流 用bufferedread和printwrite更好点。

我感觉用字节流比较好,

 public class  TransportFileClient
{
    public static void main(String[] args) 
    {
        System.out.println("Hello World!");
        Socket socket;
        //链接服务器
        try{
            socket = new Socket("localhost",8088);
            BufferedInputStream bis = new BufferedInputStream(
                new FileInputStream("TransportFile.xml"));
            BufferedOutputStream bos = new BufferedOutputStream(
                socket.getOutputStream());
            byte[] buffer = new byte[1024];
            int len = 0;
            while((len=bis.read(buffer)) != -1){
                bos.write(buffer,0,len);
            }
            bos.flush();
            socket.close();
            System.out.println("传输完成!");
        }catch(UnknownHostException uhe){
            uhe.printStackTrace();
        }catch(IOException ioe){
            ioe.printStackTrace();
        }
    }
}
 public class  TransportFileServer
{

    public static void main(String[] args) 
    {
        System.out.println("Hello World!");
        ServerSocket server;
        Socket socket;
        //打开server端口
        try{
            server = new ServerSocket(8088);
            socket = server.accept();
            BufferedOutputStream bos = new BufferedOutputStream(
                new FileOutputStream("TransportFile副本"));
            BufferedInputStream bis = new BufferedInputStream(socket.getInputStream());
            byte[] buffer = new byte[1024];
            int len = 0;
            while((len=bis.read(buffer)) != -1){
                bos.write(buffer,0,len);
            }
            bos.flush();
            socket.close();
            System.out.println("传输完成");
        }catch(IOException e){
            e.printStackTrace();
        }
    }
}