2013-10-07 83 views
0

如何在一个文件中“写入”一个ArrayList,我可以在写入后下载该文件?列表中的一个元素是CSV文件中的一行。将ArrayList保存为CSV文件Apache Wicket

例如: 我有一个ArrayList<String> myList = service.getList 比我想写在一个文件。在一个简单的客户端应用程序中,它会很容易。但我必须用Apache Wicket来做到这一点。另外,如果有一个Filebrowser,我可以指定在哪个目录中下载它,那将会很不错。

我想,它的工作是这样的:

final File filetoSave = new File("Exported Objects.csv"); 
     Writer writer = null; 
     try { 

      writer = new BufferedWriter(new FileWriter(filetoSave)); 
      writer.write(""); 
      for (obj o : listO) { 
       writer.append(o.getasd); 

      } 
     } catch (IOException ex) { 
      // report 
     } finally { 
      try { 
       writer.close(); 
      } catch (Exception ex) { 
      } 
     } 

,但它不会。我必须使用一个JBoss服务器。在我本地的码头服务它的工作,但在JBoss服务器上这是不可能的这样做。 检票版本:1.4.7

+0

升级到更新版本的检票,因为1.4.7有安全问题。至少有15个补丁版本可用:最新的1.4版本是1.4.22。也就是说,1.4是生命的终结,你真的应该考虑升级到6.x –

+0

Thx,供您参考。问题是我不能自己更新它。我必须为公司开发下载可能性。我知道,我们应该更新。 :) – Christian

+0

'writer.flush()'? – tetsuo

回答

0

见Wicket的DownloadLink的下载功能,并使用一个临时文件(File.createTempFile())来创建可下载的CSV。您现在创建文件的方式位于容器的当前工作目录中。您可能没有在该位置写入权限,但temp应该可以工作。

0

或使用Resource加上ResourceLink。即时生成文件。