Есть ли способ объединить выходной поток и printwriter в одном запросе? - PullRequest
0 голосов
/ 01 июня 2019

Я должен сделать передачу файла, в моем случае PDF, через сокет в Java для моей домашней работы. Обычно я запрашивал текст и возвращал текст, но на этот раз я должен отправить файл через сокет. В ходе моего исследования я обнаружил, что передача файлов осуществляется с помощью потоков Fileinput (output). Моя проблема в том, что запрос к серверу должен выглядеть примерно так:

    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

К сожалению, это не работает для меня. Таким образом, сервер считает запросы как два разных выхода. Есть ли способ объединить оба выходных потока или записать запрос в один выходной поток?

...