如何使用Grails读取本地文件?

时间:2011-12-24 01:40:25

标签: grails file-io groovy

当我的Grails应用程序启动时,我会从远程URL下载的CSV文件中构建数据结构。如果文件无法访问,我想回到本地副本。当前正在使用Quartz作业启动服务层中的文件。

使用Groovy阅读Grails中的本地资源的最佳做法是什么?

  • 我应该把文件藏在哪里?
  • 如何安全正确地阅读文件?

一般情况下的答案是非常可以接受的。

1 个答案:

答案 0 :(得分:2)

我认为处理此问题的最佳方法是将文件的位置存储在externalized configuration file中。

因此,您将确定标准化位置(例如/etc/myappname/CSVFileConfig.groovy),或者使用环境变量或类似内容传递配置文件路径。有关示例,请参阅Externalized Configuration

然后你可以简单地将本地文件的实际路径添加到该extenal配置中,如下所示:

// CSVFileConfig.groovy
my.custom.csv.path = ...

最后,使用常规配置操作访问它:

// in your Quartz job
def path = grailsApplication.config.my?.custom?.csv?.path
if(!path) {
    // no file to load
} else {
    // load file
}

就阅读文件而言,您主要关注的是什么?如果您使用的是CSV库,例如OpenCSV(在most of the Grails libraries for CSV parsing中使用),它将处理文件的打开和解析。

对于除此之外的安全问题,我不确定如何以通用方式处理它们。这取决于您的具体情况。我认为来自URL的那个具有更高的风险因素。