java.nio.file.Files替代jdk 1.6或更少

时间:2013-09-11 17:12:48

标签: java java-7

我正在尝试将java.nio.file.Files功能用于以下代码

@RequestMapping(value = "/view", method = RequestMethod.GET)
public HttpServletResponse viewReport(Map model, HttpServletRequest req,HttpServletResponse rep){

     try {

         ReportGenerationService reportGenerationService = new ReportGenerationService();
         ViewReportParameters viewReportParameters = reportGenerationService.getReportViewParameters();


         String quote="\"";
         String inlineFileName = "inline; fileName="+quote+viewReportParameters.getFileName()+".pdf"+quote;

         File file = new File(filePath);

         rep.setHeader("Content-Type", "application/pdf");
         rep.setHeader("Content-Length", String.valueOf(file.length()));
         rep.setHeader("Content-Disposition", inlineFileName);


            Files.copy(file.toPath(), rep.getOutputStream());
        } catch (IOException e) {
            e.printStackTrace();
        }

    return rep;
}

但是由于linux box jdk版本较旧(Java 6),我无法使用它。有没有其他方法可以在Java 6中执行类似的操作?提前致谢

1 个答案:

答案 0 :(得分:2)

Guava提供与java.nio.file.Files类似的Files类。它有一个重载的copy()方法,例如

public static void copy(File from,  OutputStream to) throws IOException

  

将文件中的所有字节复制到输出流。

它不需要任何Java 7类,因此使用Java 6进行编译。