java接口返回二进制文件
时间: 2023-08-01 13:06:48 浏览: 85
java读取二进制文件
在 Java 中,可以通过接口返回二进制文件的方式是将二进制数据转换为字节数组,然后在接口方法中返回这个字节数组。以下是一个示例代码:
```
import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
@Path("/binary")
public class BinaryFileResource {
@GET
@Path("/download")
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response downloadFile() {
try {
String filePath = "/path/to/file"; // 文件路径
FileInputStream fis = new FileInputStream(filePath);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = fis.read(buffer)) != -1) {
bos.write(buffer, 0, len);
}
byte[] fileContent = bos.toByteArray();
return Response.ok(fileContent, MediaType.APPLICATION_OCTET_STREAM)
.header("Content-Disposition", "attachment; filename=\"file.bin\"")
.build();
} catch (IOException e) {
e.printStackTrace();
return Response.serverError().build();
}
}
}
```
在上面的示例中,我们使用 FileInputStream 读取文件数据,并将二进制数据写入 ByteArrayOutputStream 中。最后,我们通过 toByteArray() 方法将 ByteArrayOutputStream 中的数据转换为字节数组。然后,在 downloadFile() 方法中,我们使用 Response.ok() 方法返回一个 Response 对象,其中包含字节数组和相应的 MediaType。此外,我们还设置了 Content-Disposition 头,用于指定浏览器下载文件时的文件名。
阅读全文