2010-08-18 5 views
3
 FileWriter outFile = null; 
     try { 
      outFile = new FileWriter("member.txt"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
out.println("test"); 

Exécution de cette commande, où est le membre.txt? J'utilise Windows Vista. UAC activé alors quand je l'exécute, je ne pense pas qu'il écrit dans le fichier txt. Le fichier txt est créé cependant, mais il est vide.Écrire dans un fichier, où est le fichier de sortie?

Répondre

6

Les chemins relatifs dans Java IO sont relatifs au répertoire de travail actuel. Dans Eclipse, c'est généralement la racine du projet. Vous écrivez également au out au lieu de outFile. Voici une ré-écriture mineure:

File file = new File("member.txt"); 
    FileWriter writer = null; 
    try { 
     writer = new FileWriter(file); 
     writer.write("test"); 
    } catch (IOException e) { 
     e.printStackTrace(); // I'd rather declare method with throws IOException and omit this catch. 
    } finally { 
     if (writer != null) try { writer.close(); } catch (IOException ignore) {} 
    } 
    System.out.printf("File is located at %s%n", file.getAbsolutePath()); 

clôture est obligatoire car il débusque les données écrites dans le fichier et libère le verrou de fichier. Inutile de dire que c'est une mauvaise pratique d'utiliser des chemins relatifs dans Java IO. Si vous le pouvez, utilisez plutôt le classpath. ClassLoader#getResource(), getResourceAsStream() et ainsi de suite.

4

Si le fichier a été créé avec succès (aucune exception n'est déclenchée), il se trouve dans le répertoire de travail en cours.

0

Cela dépend de l'IDE que vous utilisez également. Il ira généralement dans le même répertoire que le fichier .java. Je pense que des programmes comme Eclipse et Netbeans peuvent le jeter dans un répertoire différent.

0

Si vous exécutez depuis Eclipse, le répertoire de travail actuel sera le répertoire de base de votre projet (affichez les propriétés de votre projet pour trouver cet emplacement sur le disque). Vous devriez pouvoir voir le fichier dans l'explorateur de projet en actualisant le projet (cliquez sur le projet et tapez F5).

Vous pouvez spécifier un autre répertoire de travail dans la boîte de dialogue Exécuter les configurations sous l'onglet Arguments.

2

Pour la classe Java que vous exécutiez, faites un clic droit sur le fichier et aller à « Exécuter en tant que -> Exécuter les configurations ... »

Dans cet écran, accédez à l'onglet « Arguments ». En bas de l'écran, recherchez le paramètre "Répertoire de travail". C'est le répertoire dans lequel votre classe Java va s'exécuter.

Dans votre exemple, vous créez "member.txt" dans le répertoire courant, de sorte qu'il apparaîtra dans l'emplacement de votre "répertoire de travail".

Questions connexes