首页 > 解决方案 > 有没有办法在一个请求中组合输出流和打印器?

问题描述

我必须通过java中的套接字进行文件传输,在我的情况下是pdf来完成我的作业。通常我请求文本并返回文本,但这次我必须通过套接字发送文件。在我的调查中,我发现文件传输是使用 Fileinput(output)streams 进行的。我的问题是对服务器的请求必须看起来像这样:

    File file = new File(pathToFile);
    Pirntwriter out = new PrintWriter(Socket s.getOutputStream());
    Outputstream outFile = s.getOutputStream();
    int count
    out.write("user file\r\n"
                + file.getName()+"\r\n"
                + file.length()+"\r\n"
                + "body\r\n");
    // send file but im not sure how
    byte[] buffer = new buffer with size of file.length()
    while ((count = in.read(buffer)) > 0){
         outFile.write(buffer, 0, count);
    }

    out.flush
    outFile.flush

不幸的是,这对我不起作用。通过这种方式,服务器将请求计为两个不同的输出。有没有办法结合两个输出流或将请求写入一个输出流?

标签: javafilesocketsinputoutput

解决方案


推荐阅读