2011-05-17 51 views
13

我在應用引擎上的文件爲/WEB-INF/config.txt。應用程序引擎上的文件的路徑是什麼?如何在App Engine中讀取文件?

如:new File(/*What path do i put here?*/)

+0

在我的理解文件不允許在AppEngine。您必須將它們聲明爲靜態文件並通過URL訪問它們。 http://blabla.appspot.com/YOURFILE.txt – 2011-05-17 17:52:57

+5

文件可以被讀取,而不是寫入。 – Kyle 2011-05-17 18:06:46

回答

12

這爲我工作:

servletContext.getResourceAsStream("/WEB-INF/config.txt")

0

如果這是你的應用程序,並在類路徑中的一部分,你應該能夠使用this.getClass加載它()的getResource()。

+0

我試過了,我會傳入什麼參數到getResource? – Kyle 2011-05-17 17:28:04

5

有在AppEngine上how to add resources to your project一些文檔。查看<資源文件>部分。一些進一步的信息可以在the description of the appengine sandbox中讀取。

當資源被添加到您的項目,您可以使用下面的代碼來讀取其內容:

File f = new File("path/below/my/project/directory/config.txt"); 
InputStream in = new FileInputStream(f); 

在上面的例子中「路徑」目錄下面是你的項目的「戰爭」的目錄。

3

我發現這是搶在字符串整個文件的好方法:

import java.net.URL; 
import java.io.File; 
import java.io.FileInputStream; 
import com.google.common.io.CharStreams; 

URL resource = getServletContext().getResource("/WEB-INF/config.txt"); 
File file = new File(resource.toURI()); 
FileInputStream input = new FileInputStream(file); 
String myString = CharStreams.toString(new InputStreamReader(input, "UTF-8")); 
5

對我來說,我沒有獲得的ServletContext - getServletContext()方法:

這工作對我來說:

InputStream inputStream = new FileInputStream(new File("WEB-INF/config.txt")); 
+0

這也適用於我。有一點需要強調的是,如果你這樣做,你不要在「WEB-INF/config.txt」中的「WEB-INF」之前加一個「/」。 – CKP78 2016-11-01 10:43:14

相關問題