在jersey multipart中上载文件时是否应显式关闭inputstream?
我使用Jersey multipart在控制器中上载文件 以下是典型的: 我在网上读过很多示例代码,但inputstream并没有关闭 我的问题是,我应该显式或手动关闭uploadedInputStream吗?为什么在jersey multipart中上载文件时是否应显式关闭inputstream?,jersey,jersey-2.0,multipart,Jersey,Jersey 2.0,Multipart,我使用Jersey multipart在控制器中上载文件 以下是典型的: 我在网上读过很多示例代码,但inputstream并没有关闭 我的问题是,我应该显式或手动关闭uploadedInputStream吗?为什么 @Path("/file") public class UploadFileService { @POST @Path("/upload") @Consumes(MediaType.MULTIPART_FORM_DATA) public Respo
@Path("/file")
public class UploadFileService {
@POST
@Path("/upload")
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
@FormDataParam("file") InputStream uploadedInputStream,
@FormDataParam("file") FormDataContentDisposition fileDetail) {
String uploadedFileLocation = "d://uploaded/" + fileDetail.getFileName();
// save it
writeToFile(uploadedInputStream, uploadedFileLocation);
String output = "File uploaded to : " + uploadedFileLocation;
return Response.status(200).entity(output).build();
}
// save uploaded file to new location
private void writeToFile(InputStream uploadedInputStream,
String uploadedFileLocation) {
try {
OutputStream out = new FileOutputStream(new File(
uploadedFileLocation));
int read = 0;
byte[] bytes = new byte[1024];
out = new FileOutputStream(new File(uploadedFileLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}