szu_zkjszu_zkj 2021-03-29 20:38 采纳率: 14.3%
浏览 35
已采纳

java网络编程小问题 求助大佬

题目要求服务器端向客户端发送一个文件 客户端将文件保存并反馈“发送成功”给服务器端 

我的代码如下 为啥没法将文件内容写入到客户端文件夹里 求大佬帮忙 

public class tcptest {
    @Test
    public void client() throws IOException {
        Socket socket=new Socket(InetAddress.getByName("127.0.0.1"),8990);

        InputStreamReader isr=new InputStreamReader(socket.getInputStream());
        BufferedReader br=new BufferedReader(isr);
        FileWriter fw=new FileWriter(new File("ClientData.txt"));


        String str=null;
        char i='1';

        while((str=br.readLine())!=null)
        {
            System.out.println("afhua");
            fw.write("aksnfdas");
            //fw.write(i+" "+str+'\n');
            i++;
        }
        System.out.println("knfkdsanf");

        BufferedOutputStream bos=new BufferedOutputStream(socket.getOutputStream());


        bos.write("接收成功".getBytes());

        fw.close();
        br.close();
        socket.close();
        bos.close();


    }
    @Test
    public void sever() throws IOException {

        ServerSocket ss=new ServerSocket(8990);

        Socket socket=ss.accept();

        OutputStreamWriter osw=new OutputStreamWriter(socket.getOutputStream());
        FileReader fr=new FileReader("SeverData.txt");
        BufferedReader br=new BufferedReader(fr);

          String str;

          while((str=br.readLine())!=null)
          {
              osw.write(str+'\n');
          }

          socket.shutdownOutput();
          BufferedInputStream bis=new BufferedInputStream(socket.getInputStream());
          ByteArrayOutputStream baos=new ByteArrayOutputStream();
          byte[] buffer=new byte[2];
          int len;
          while((len=bis.read(buffer))!=-1)
          {
              baos.write(buffer,0,len);
          }
        System.out.println(baos.toString());

          osw.close();
          br.close();
          socket.close();
          ss.close();
          bis.close();
          baos.close();
    }
}
  • 写回答

1条回答 默认 最新

  • CSDN专家-三岁丫 2021-03-29 23:35
    关注
    public class Test2 {
    
      public static void main(String[] args) throws Exception {
        ServerSocket ss=new ServerSocket(8990);
    
        Socket socket=ss.accept();
        OutputStreamWriter osw=new OutputStreamWriter(socket.getOutputStream());
        BufferedReader br=new BufferedReader(new FileReader("ServerData.txt"));
    
        String str;
        while((str=br.readLine())!=null)
        {
          osw.write(str);
          osw.flush();
        }
        socket.shutdownOutput();
    
        Reader reader = new InputStreamReader(new BufferedInputStream(socket.getInputStream()));
        char[] buffer=new char[1024];
        int len;
        while((len=reader.read(buffer)) != -1) {
          System.out.println(new String(buffer, 0, len));
        }
    
    
      }
    
    }
    public class Test {
    
      public static void main(String[] args) throws Exception {
        Socket socket=new Socket(InetAddress.getByName("127.0.0.1"),8990);
    
        InputStreamReader isr=new InputStreamReader(socket.getInputStream());
        BufferedReader br=new BufferedReader(isr);
        FileWriter fw=new FileWriter("ClientData.txt");
    
        String str;
        while((str=br.readLine())!=null)
        {
          fw.write(str + "\n");
        }
        fw.flush();
    
        BufferedOutputStream bos=new BufferedOutputStream(socket.getOutputStream());
        bos.write("接收成功".getBytes());
        bos.flush();
    
        fw.close();
        br.close();
        socket.close();
        bos.close();
      }
    }

    做了一点调整,你对照着原来的代码看哪里改了吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 PHP下拉框选择筛选显示数据,如何使筛选条件做模糊查询或者多条件查询
  • ¥15 keepalived的虚拟VIP地址 ping -s 发包测试,只能通过1472字节以下的数据包(相关搜索:静态路由)
  • ¥20 关于#stm32#的问题:STM32串口发送问题,偶校验(even),发送5A 41 FB 20.烧录程序后发现串口助手读到的是5A 41 7B A0
  • ¥15 C++map释放不掉
  • ¥15 Mabatis查询数据
  • ¥15 想知道lingo目标函数中求和公式上标是变量情况如何求解
  • ¥15 关于E22-400T22S的LORA模块的通信问题
  • ¥15 求用二阶有源低通滤波将3khz方波转为正弦波的电路
  • ¥15 大气压等离子体射流数值模拟
  • ¥15 用Matlab神经网络工具箱得到多个神经网络模型,有没有人知道怎么把多个神经网络结合成一个新的神经网络,实现对不同来源的数据都能用这个新的神经网络高精度预测的目的(相关搜索:数据集)