2010-12-13 278 views
6

me sale esta excepción:FileNotFoundException (El sistema no puede encontrar la ruta especificada)

java.io.FileNotFoundException: C:\...\filename.xml (The system cannot find the path specified) 

utilizando este código: existe

FileWriter fileWriter = new FileWriter(new File(path + date + time "filename.xml")); 
BufferedWriter writer = new BufferedWriter(fileWriter); 
writer.write("data"); 

Path pero directorios para 'fecha' y 'tiempo' que necesite ser creado. La aplicación tiene permisos completos en el directorio.

¿Alguna idea?

Respuesta

8

El problema se debe a que estoy creando un subdirectorio para escribir los archivos. Así que tengo actualmente C:\example\ y quiero escribir mis archivos en C:\example\<date>\<time>\<files>

Es necesario llamar File#mkdirs() antes de escribir.

File file = new File("C:/example/newdir/newdir/filename.ext"); 
file.mkdirs(); 
// ... 
+0

Eso lo resuelve. ¡Muchas gracias! – Michael

4

Supongamos que la computadora tiene razón y usted está equivocado.

Y, en ese caso, el directorio en el que desea escribir no se cierra (o no tiene permisos para hacerlo).

  1. verificación de la corriente de trabajo dir System.getProperty("user.dir")
  2. depuración de allí
+0

Sí, no asumió lo contrario. El problema es porque estoy creando un subdirectorio para escribir los archivos. Así que actualmente tengo C: \ example \ y quiero escribir mis archivos en C: \ example \ \

2

Código funciona para mí. (Es necesario agregar un writer.close() para que el texto aparezca en el archivo.)

+0

Sí, funciona bien cuando escribo en un directorio que existe. Acabo de descubrir que el problema es porque estoy escribiendo en subdirectorios que no existen. Actualmente tengo C: \ example \ y quiero escribir mis archivos en C: \ example \ \

1

También necesita convertir las rutas de carpetas y archivos recién creados a cadenas.

File folder = new File("src\\main\\json\\", idNumber); 
    folder.mkdir(); 

    if (!folder.exists()) { 
     try { 
      folder.createNewFile(); 
     } catch (IOException ex) { 
      Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 
    ... 
    ... 
    FileOutputStream output = null; 
     File file; 
     String content = data.toString(); 

     try { 

      String folder_location = folder.toString() + "\\"; 
      String filename = "CurrentInfo"; 
      file = new File(folder_location + filename.toString() + ".json"); 
      output = new FileOutputStream(file); 

      if (!file.exists()) { 
       file.createNewFile(); 
      } 

      byte[] content_in_bytes = content.getBytes(); 

      output.write(content_in_bytes); 
      output.flush(); 
      output.close(); 

     } catch (IOException ex) { 
      Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, ex); 
     } finally { 
      try { 
       if (output != null) { 
        output.close(); 
       } 
      } catch (IOException e) { 
       Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, e); 
      } 
     } 

    } 
Cuestiones relacionadas