Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [Java Eclipse] non cancella file? perchè?

    Ciao ragazzi,
    ho un piccolo problema...il codice seguente legge un file di canzoni(genere, song) e introducendo un genere si possono selezionare quelle da inserire in un altro file.
    Funziona tutto tranne la cancellazione del file, nel caso in cui il genere digitato non sia presente. Mi stampa anche la frase "Nessuna canzone presente del genere selezionato." ma il file non lo cancella eppure il nome file è giusto..potete aiutarmi...grazie.

    codice:
    import java.io.*;
    import java.util.*;
    public class SongCompilation {
    	public SongCompilation(String FileName) throws Exception {
    		v = new Vector();
    		BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(FileName)));
    		Canzone canzone = Canzone.read(br);
    		while (canzone !=null) {
    			v.addElement(canzone);
    			canzone = Canzone.read(br);
    		}
    	}
    	public void lookUpandAdd() throws Exception {
    		BufferedReader brInput = new BufferedReader(new InputStreamReader(System.in));
    		System.out.print("Inserire che genere di canzoni inserire nella compilation: ");
    		String genere = brInput.readLine();
    		String nomeFile = genere.concat(".txt");
    		 PrintStream ps = new PrintStream(new FileOutputStream(new File(nomeFile))); 
    		Enumeration e = v.elements();
    		int cont = 0;
    		while (e.hasMoreElements()) {
    			Canzone canzone = (Canzone)e.nextElement();
    			if (genere.equals(canzone.getKind())) {
    				cont ++;
    				System.out.println(canzone.getSong());
    				System.out.print("Vuoi aggiungerla? (S/N)");
    				BufferedReader brConf = new BufferedReader(new InputStreamReader(System.in));
    				String conf = brConf.readLine();
    				if (conf.equals("SI") || conf.equals("S") || conf.equals("s") || conf.equals("si"))				
    					ps.println(canzone.getSong());
    			} 
    		}
    		if (cont == 0) { 
    			System.out.println("Nessuna canzone presente del genere selezionato.");
    			 File f = new File(nomeFile);
    			f.delete(); 
    		}
    	}
    	private Vector v;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    non ti fidare di delete di File... è risaputo che a meno che tutte le risorse sul aperte che bindano il file in questione siano state rilasciate, il delete non andrà a buon fine. Lì vedo ad esempio un PrintStream che fa riferimento al file (nomeFile) e che non viene mai chiuso.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Originariamente inviato da Andrea1979
    non ti fidare di delete di File... è risaputo che a meno che tutte le risorse sul aperte che bindano il file in questione siano state rilasciate, il delete non andrà a buon fine. Lì vedo ad esempio un PrintStream che fa riferimento al file (nomeFile) e che non viene mai chiuso.
    grazie ho risolto aggiungendo ps.close();

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Andrea1979
    non ti fidare di delete di File... è risaputo che a meno che tutte le risorse sul aperte che bindano il file in questione siano state rilasciate, il delete non andrà a buon fine. Lì vedo ad esempio un PrintStream che fa riferimento al file (nomeFile) e che non viene mai chiuso.
    e ti posso dire che questo su sistemi unix non mi creava problemi, su windows si....lì dipende anche da come il sistema operativo gestisce i file.
    RTFM Read That F*** Manual!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.