Pregunta

OK, me siento como esto debería ser fácil, pero obviamente estoy perdiendo algo fundamental para la escritura de archivos en Java. Tengo esto:

File someFile = new File("someDirA/someDirB/someDirC/filename.txt");

y sólo quiero escribir en el archivo. Sin embargo, aunque existe someDirA, someDirB (y por lo tanto someDirC y filename.txt) no existen. Hacer esto:

BufferedWriter writer = new BufferedWriter(new FileWriter(someFile));

lanza una FileNotFoundException. Bueno, er, no es broma. Estoy tratando de crear, después de todo. ¿Es necesario para romper la ruta del archivo en componentes, crear los directorios y luego crear el archivo antes de instanciar el objeto FileWriter?

¿Fue útil?

Solución

Hay que crear todos los directorios anteriores en primer lugar. Y aquí es cómo hacerlo. Es necesario crear un archivo de objeto href="http://java.sun.com/javase/6/docs/api/java/io/File.html" rel="noreferrer"> .mkdirs () en él. A continuación, asegúrese crear el nuevo archivo.

final File parent = new File("someDirA/someDirB/someDirC/");
if (!parent.mkdirs())
{
   System.err.println("Could not create parent directories ");
}
final File someFile = new File(parent, "filename.txt");
someFile.createNewFile();

Otros consejos

Se puede utilizar el método "mkdirs" en la clase de archivos en Java. mkdirs crearán su directorio, y crearán cualquier directorio padre inexistentes si es necesario.

http : //java.sun.com/j2se/1.4.2/docs/api/java/io/File.html#mkdirs%28%29

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top