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 ボックス jdk のバージョンが古い (Java 6) ため、これを使用することはできません。Java 6で同様の操作を行う代替手段はありますか? 前もって感謝します

4

1 に答える 1

2

GuavaFilesに似たクラスを提供します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 に答える