2010-08-14 4 views
0

quand j'écris ce morceau declarification nécessaire contre ce morceau de code en Java

String path="d:\\test.txt"; 
    boolean chk; 
    File f=new File(path); 

    try 
    { 
     chk=f.createNewFile(); 
    }catch(IOException e) 
    { 
     chk=false; 
     e.printStackTrace(); 
    } 


    if(chk) 
     System.out.println("file created."); 
    else 
     System.out.println("file not created"); 
fichier

est créé en d-entraînement

mais quand j'utilise cette

String path="d:\\test.txt"; 
    File f=new File(path); 

    if(f.createNewFile()) 
     System.out.println("file created."); 
    else 
     System.out.println("file not created"); 

il jette exception.

S'il vous plaît me éclairer sur ce

+0

Quelle est l'exception levée? (affichez tous les détails) –

+0

dans Eclipse il montre "IOException non gérée" –

+0

quelles modifications doivent être faites dans le 2ème morceau de code pour le faire fonctionner avec succès ?? –

Répondre

1

Modifier deuxième partie de votre code à suivre:

    String path = "d:\\test.txt"; 
        File f = new File(path); 

        try { 
         if (f.createNewFile()) 
          System.out.println("file created."); 
         else 
          System.out.println("file not created"); 
        } catch (IOException e1) { 
         e1.printStackTrace(); 
        } 

Vous devez faire cela parce que si vous ne surrond f.createNewFile() dans bloc try/catch, votre code ne compilera pas . Comme l'utilisation de f.createNewFile() lance IOException vous devez soit le mettre dans try/catch block attraper IOException ou méthode en utilisant cette partie du code doit déclarer throws IOException.

+0

mec Je suppose que c'est ce que j'ai fait dans le premier extrait :-) –

3

Je doute que le deuxième morceau de code fait « lance une exception »; le plus probable ce que vous voyez est une erreur de compilation vous avertissant que vous devez attraper l'exception vérifiée IOException lorsque vous appelez createNewFile.

Une exception "cochée" doit avoir un gestionnaire ou être déclarée par la méthode appelante via throws, sinon votre code ne sera pas compilé. IOException est cochée. createNewFile déclare qu'il throws IOException. Par conséquent votre deuxième bloc de code n'est pas correct.

-1

Je suppose que vous obtenez une exception d'E/S ou vous ne pouvez pas créer (écrire) ce fichier, peut-être parce qu'il est ouvert. File.createNewFile() lève une exception si le fichier existe déjà (ou que vous n'avez pas le droit de créer le fichier)

0

Donc, après avoir exécuté le premier morceau de code ... le second échouera, si vous avez oublié de supprimer test.txt.

+0

Monsieur je suppose que dans ce cas, o/p sera "Fichier non créé". Mais le code va sûrement fonctionner. –

+0

Il ne fonctionnera que s'il est compilé, et votre deuxième exemple ne compilera pas. – EJP

+0

@Ankit @EJP Certains IDE ont un paramètre de configuration qui vous permet d'exécuter le code malgré les erreurs de compilation (les marques rouges). Vraiment le code ne fonctionnera pas toujours avec succès en raison d'erreurs de compilation. @Ankit: vous devez vous assurer que vous vous débarrassez des marques rouges avant d'exécuter le code dans Eclipse. Ils ne sont pas pour la décoration :) Cliquez sur les puces pour une liste de solutions possibles. – BalusC

Questions connexes