2011-05-17 12 views
13

Tengo un archivo en /WEB-INF/config.txt en el motor de la aplicación. ¿Cuál es la ruta al archivo en el motor de la aplicación?¿Cómo leo un archivo en App Engine?

por ejemplo:. new File(/*What path do i put here?*/)

+0

en mis archivos comprensión no se permiten en App Engine. Debes declararlos como archivos estáticos y acceder a ellos a través de la URL. http://blabla.appspot.com/YOURFILE.txt –

+5

Los archivos se pueden leer, no escribir. – Kyle

Respuesta

12

Esto funcionó para mí:

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

0

Si esto es parte de su solicitud y en la ruta de clases, usted debería ser capaz de cargarlo utilizando this.getClass() getResource().

+0

Intenté esto, ¿qué parámetro pasaría a getResource? – Kyle

5

Hay alguna documentación en appengine how to add resources to your project. Consulte la parte < de archivos de recursos. Se puede leer más información en the description of the appengine sandbox.

Cuando se añaden los recursos para su proyecto puede utilizar el siguiente código para leer su contenido:

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

En el ejemplo anterior el directorio 'camino' se encuentra por debajo del directorio 'guerra' de su proyecto.

3

me encontrado que esto es una buena manera de agarrar el archivo entero en una cadena:

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

En mi caso, yo no tenía acceso a ServletContext - getServletContext():

Esto funcionó para mí:

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

Esto funcionó para mí también. Una cosa que debes recalcar es que si lo haces de esta manera, no coloques un "/" antes de "WEB-INF" en "WEB-INF/config.txt". – CKP78