2014-06-17 14 views
6

Utilizzando il metodo createNewFile e il metodo di cancellazione della classe File I file generati correttamente vengono generati dal mio programma. Ma c'è un messaggio di avviso fastidioso dopo il processo di compilazione. La mia domanda è come posso rimuovere i messaggi di avviso senza usare @SUPPRESSWARNIGN. Perché quando eseguo l'ispezione per il mio codice, vedo un probabile avviso di errore causato da questi 2 metodi. Sì, utilizzando gli avvisi @SuppressWarning e i probabili messaggi di errore scompaiono.createNewFile() causa un messaggio di avviso, come eliminare?

Non so se è correlato con la versione di Java ma in ogni caso sto usando Java 8. Ho fatto la ricerca per questo problema, non ho trovato nulla su Internet. Ho visto persone su internet usare questi 2 metodi nello stesso modo in cui l'ho usato. Potrebbero essere ignorati i messaggi di avvertimento. Ma io non voglio.

Ecco il mio codice:

private void createAFile() throws IOException { 

    String outputFileName = getFileName(); 
    String outputPathName = getFilePath(); 
    String fullOutputPath = outputPathName + "/" + outputFileName; 

    output = new File(fullOutputPath); 

    if(output.exists()){ 

     output.delete(); //this returns a boolean variable. 

    } 

    output.createNewFile(); //this also return a boolean variable. 


} 

avvertenze sono:

Attenzione: (79, 20) Risultato di 'File.Delete()' viene ignorato. Avvertenza: (84, 16) Il risultato di 'File.createNewFile()' viene ignorato.

Grazie

+0

Sarebbe * davvero * d'aiuto se hai detto * quali * quegli avvertimenti sono. – awksp

+0

Non vedo alcun avviso con quel codice in Java 8. – luanjot

+0

Avviso: (79, 20) Il risultato di 'File.delete()' viene ignorato. E attenzione: (84, 16) Il risultato di 'File.createNewFile()' viene ignorato –

risposta

8

Se si vuole evitare questi messaggi è possibile fornire la registrazione per il caso in cui questi metodo return false.

Qualcosa di simile

private static Logger LOG = Logger.getLogger("myClassName"); 
// some code 
if (!output.delete()) { 
    LOG.info("Cannot delete file: " + output); 
} 
+0

grazie per l'idea di registro :) in questo momento non è possibile votare, mi dispiace per quello. –

3

Questi assomigliare avvisi generati da uno strumento di controllo del codice. Quello che vorrei fare è questo:

boolean deleted,created; // both should be instantiatd to false by default 
if(output.exists()){ 

    deleted = output.delete(); //this returns a boolean variable. 
} 
if(deleted){ 
    created = output.createNewFile(); 
} 
if(!deleted||!created){ 
    // log some type of warning here or even throw an exception 
} 
+0

grazie :) Dato che sono un principiante nello Stackoverflow, non posso votare la tua risposta. Ma sto votando la tua risposta "astrattamente". –

Problemi correlati