Foros del Web » Programación para mayores de 30 ;) » Java »

new file me falla

Estas en el tema de new file me falla en el foro de Java en Foros del Web. hola! según tengo entendido, el código: Código: File f = new File("/keystore/key") debe crearme el archivo key en la ruta relativa /dondeEstoy/keystore, ¿esto es así? ...
  #1 (permalink)  
Antiguo 27/07/2011, 05:00
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 12 años, 2 meses
Puntos: 17
new file me falla

hola! según tengo entendido, el código:


Código:
File f = new File("/keystore/key")
debe crearme el archivo key en la ruta relativa /dondeEstoy/keystore, ¿esto es así? me salta la excepción:

Código:
Cause: java.io.FileNotFoundException: /keystore/key (No such file or directory)
Es decir, dice que no la encuentra, efectivamente, no existe, lo que quiero es crearlo. ¿cómo puedo hacerlo?

Gracias!
  #2 (permalink)  
Antiguo 27/07/2011, 05:40
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 12 años
Puntos: 306
Respuesta: new file me falla

Si pones una barra delante no es una ruta relativa, es absoluta de Linux y Windows no sé cómo la interpreta, pero seguro que no como relativa.

Con new no creas el fichero, si no un objeto fichero. Para crear el fichero tendrás que usar los métodos de ese objeto.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 27/07/2011, 05:53
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 16 años, 7 meses
Puntos: 454
Respuesta: new file me falla

De hecho, new File() no suelta ninguna excepción, exista o no el fichero (sólo NullPointerException si le pasas un null como parámetro).

Si obtienes FileNotFoundExcepcion, no es en esa línea, sino más adelante que seguramente intentes hacer un new FileInputStream() o llamando a algún otro método de File o ....

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #4 (permalink)  
Antiguo 27/07/2011, 06:56
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.512
Antigüedad: 12 años, 8 meses
Puntos: 188
Respuesta: new file me falla

Lo que está haciendo ahí es crear un File a partir de un archivo en esa ruta:

Si quieres crear uno nuevo debes crear un new File() y cuando tengas todo lo que necesitas guardarlo así:

java.io.FileOutputStream f = new java.io.FileOutputStream(directorio+"/"+file.ext);
f.write(contenidoArchivo);
f.close();

donde file es el nombre de archivo, ext la extensión,directorio la ruta donde se va a guardar, y contenidoArchivo es el content del File que quieres escribir.

Yo lo he realizado con multipartrequest, es un poco distinto pero la base es esa.
  #5 (permalink)  
Antiguo 27/07/2011, 13:21
Avatar de Physlet  
Fecha de Ingreso: octubre-2010
Ubicación: Panamá
Mensajes: 48
Antigüedad: 10 años, 6 meses
Puntos: 9
Respuesta: new file me falla

El constructor de File() lo que hace es crear una ruta abstracta. Como ya dijeron arriba, ese constructor no lanza ninguna excepción al menos que intentes usar alguna clase de lectura/escritura.
  #6 (permalink)  
Antiguo 29/07/2011, 01:18
 
Fecha de Ingreso: marzo-2009
Mensajes: 509
Antigüedad: 12 años, 2 meses
Puntos: 17
Respuesta: new file me falla

Muchas gracias a todos, según lo que me habéis dicho hago:

Código:
	File f= new File("/var/www/envios/keystore");
		
	String msg = "";
	//A partir del objeto File creamos el fichero fisicamente
	if (f.createNewFile()){
		msg = "El fichero se ha creado correctamente";
	} else {
		msg = "No ha podido ser creado el fichero";
	}
	
	return msg;
Estoy en linux, el usuario que ejecuta el código es www-data, entonces, la carpeta envios tiene como propietaria www-data grupo www-data:

Código:
[email protected]:/var/www$ ls -l

drwxr-xr-x  2 www-data  www-data 4096 2011-07-28 16:54 envios
Al ejecutarlo, la línea donde sale "createNewFile()" me salta la siguiente excepción (no es formato java como tal porque ejecuto el código desde una llamada en php, pero es una excepción java):

Código:
[[o:Exception]:"java.lang.Exception: Invoke failed: [[o:webClient]]->openParking((o:String)[o:String]). Cause: java.io.IOException: Permission denied VM: [email protected]://java.sun.com/" at: #-12 java.io.UnixFileSystem.createFileExclusively(Native Method) #-11 java.io.File.createNewFile(File.java:900) #-10 webClient.openParking(webClient.java:46) #0 /var/lib/tomcat6/webapps/JavaBridge/java/Java.inc(267): java_ThrowExceptionProxyFactory->getProxy(2, 'webClient', true) #1 /var/lib/tomcat6/webapps/JavaBridge/java/Java.inc(419): java_Arg->getResult(true) #2 /var/lib/tomcat6/webapps/JavaBridge/java/Java.inc(425): java_Client->getWrappedResult(true) #3 /var/lib/tomcat6/webapps/JavaBridge/java/Java.inc(629): java_Client->getResult() #4 /var/lib/tomcat6/webapps/JavaBridge/java/Java.inc(1755): java_Client->invokeMethod(1, 'openParking', Array) #5 /var/lib/tomcat6/webapps/JavaBridge/java/Java.inc(1868): java_JavaProxy->__call('openParking', Array) #6 /var/lib/tomcat6/webapps/JavaBridge/java/Java.inc(2043): java_AbstractJava->__call('openParking', Array) #7 /var/www/envios/abrirCerrar.php(34): Java->__call('openParking', Array) #8 /var/www/envios/abrirCerrar.php(34): Java->openParking('81.202.107.170') #9 {main}]

Gracias!

Etiquetas: falla, file
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:14.