Java:将本地文件传输到服务器的输出流

时间:2015-07-18 20:21:00

标签: java file api stream server

我有一个FileOutputStream,我试图在远程服务器上获取此文件的内容。服务器有一个API我应该POST文件的内容(这是一个.xls文件)。 API要求我将数据发布到其API URL,并在这种情况下将ContentType设置为.xls文件的内容。

代码如下:

cifreq *n

如何将流中文件的数据发送到服务器?

1 个答案:

答案 0 :(得分:0)

FileOutputStream用于写文件,看起来你需要读取文件,然后你应该使用FileInputStream。 将文件内容读取到字节数组 Convert InputStream to byte array in Java

try (InputStream is = new FileInputStream("myfile.xls")) {
    ByteArrayOutputStream buffer = new ByteArrayOutputStream();
    int nRead;
    byte[] dataPart = new byte[16384];
    while ((nRead = is.read(dataPart, 0, dataPart.length)) != -1) {
      buffer.write(dataPart, 0, nRead);
    }
    buffer.flush();
    byte[] data = buffer.toByteArray();

    handle.sendRequest("https://server/API/file/id", "POST", "application/vnd.ms-excel", data);
}