Alternative to Files#copy() in Java 6
本问题已经有最佳答案,请猛点这里访问。
这就是我的代码,它已经开始工作了:
1 2 3 4 5 6 7 8 9 10 11 12 | public class MyServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse response) throws Exception { String pathToFile ="myimage.jpg"; File file = new File(pathToFile); response.setHeader("Content-Type","image/jpeg"); response.setHeader("Content-Length", String.valueOf(file.length())); response.setHeader("Content-Disposition","inline; filename="" + file.getName() +"""); Files.copy(file.toPath(), response.getOutputStream()); response.flushBuffer(); } } |
但是,我必须使用JDK1.6来实现这一点。
拷贝只在Java 1.7中可用。
有什么建议吗?
您可以使用apache commons ioutils。
1 |
Java 6没有任何现成的文件复制功能,你必须手动创建文件复制过程。要复制文件,只需使用fileinputstream将文件转换为bytes流,然后使用fileoutputstream将字节写入另一个文件。
因为用JDK方法做这件事是不容易的,你可以使用JakartaCommons IO中的ioutils,它还有很多其他有用的东西。
1 | IOUtils.copy(inputStream, outputStream); |
号
或者使用guava的bytestreams.copy()可以实现相同的功能。
1 | ByteStreams.copy(inputStream, outputStream); |