2

我正在尝试对以下代码使用 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 中是否可以进行类似操作?提前致谢

4

1 回答 1

2

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

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

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

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

于 2013-09-11T17:15:43.700 回答