在 Grails 中放置文本文件的位置,以及如何获取路径

2022-09-01 16:26:18

我需要将.txt文件读入时髦的类中,以便逐行询问它。但是我不确定我把它放在我的圣杯应用程序中的哪个文件夹中,以及如何获取它的路径?

到目前为止,我已尝试将其放在新文件夹下以及新文件夹中srcweb-app/txt

我已经尝试了以下内容来阅读它

fileIn = new File('/lexicon.txt').text 

fileIn = new File('txt/lexicon.txt').text

无济于事。

任何身体有任何指针?


答案 1

Grails是一个Java Web应用程序,因此它将被编译成一个sigle文件,其中包含所有文件/类/等。大多数 Web 容器都会解压缩 ,但没有任何保证,因此使用它作为文件访问此文件不是一个好主意。.warwarFile

顺便说一句,您可以将文件放入 ,在这种情况下,它将被放入 ,并且您将能够通过使用以下命令访问它:grails-app/confclasspath

InputStream lexicon = this.class.classLoader.getResourceAsStream('lexicon.txt')

您也可以将此文件放入子目录中,例如将其加载为grails-app/conf/data***.getResourceAsStream('data/lexicon.txt')


答案 2

您可以将文件放在Web应用程序下/

例:

web-app/lexicon.txt

然后在您的控制器或服务中使用grails应用程序:

class MyService {
    def grailsApplication
    public myMethod() {
        File myFile = grailsApplication.mainContext.getResource("lexicon.txt").file
    }
}

希望这有帮助