PDFファイルを作成した直後に FileInputStream インスタンスをフラッシュしたい。
動的レポートを使用してレポートを PDF にエクスポートしています
コード全体は掲載しません。大事な部分だけ
JasperReportBuilder report = DynamicReports.report();//a new report
File path= new File("/home/kunal/Medicam reports/Sale Report");
String pdfreport = String.valueOf(dateformat.format(date));
if(!path.exists())
{
path.mkdirs();
report.toPdf(new FileOutputStream(path+"/"+pdfreport+".pdf"));
}
else
{
report.toPdf(new FileOutputStream(path+"/"+pdfreport+".pdf"));
}
File generatedfile = new File("/home/kunal/Medicam reports/Sale Report/"+pdfreport+".pdf");
if(generatedfile.exists())
{
if(Desktop.isDesktopSupported())
{
Desktop.getDesktop().open(generatedfile);
}
else
{
System.out.println("Not Supported by your desktop");
}
}
else
{
System.out.println("File does not Exists");
}
上記のコードを実行するたびに、else部分が次のように実行されます"File does not exists"
ファイルは生成されますが、新しく生成されたファイルを読み取ろうとすると、generatedfile.exists()
条件が失敗します