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

    [java] eliminare una riga da file di testo

    Ciao a tutti!
    Devo realizzare un metodo che restituisce da un file di testo la riga alla posizione pos e, successivamente, eliminarla. Questa è la dichiarazione del metodo:

    public String extractLine(File file, int pos){
    }


    Se possibile, dovrei realizzarla utilizzando la classe Scanner per fare la lettura del file, inizializzando opportunamente il suo delimitatore accettando tutte le sequenze di "\n" (newline) e "\r" (carriage-return), ed infine gestire internamente la possibile eccezione FileNotFoundException.

    Qualcuno sa come potrei fare?
    Nel caso non sappiate farlo con Scanner, qualsiasi modo mi può andare bene (anche se preferisco il primo )
    Ho tre giorni per fare questo metodo..spero mi aiuterete!

    Grazie!

  2. #2
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    nella pagina di documentazione di scanner (http://java.sun.com/javase/6/docs/ap...l/Scanner.html) ci sono un sacco di esempi.. prova a postare qualcosa e se c'e' qualche problema vediamo...

  3. #3
    Ho realizzato appena adesso un metodo che legge una determinata riga dal file. Quello che mi chiedo è:
    1) per eliminare una riga devo leggere tutte le righe tranne quella interessata e riscriverle in un altro file (in che modo?) oppure esiste un modo più semplice?
    2) Come inizializzo suo delimitatore sia con "\n" che "\r" ? scan.useDelimiter("\\n","\\r"); ?? e cosa indica il "\\r"?


    p.s.
    Sarò stupido, ma non mi ero mai accorto degli esempi ad inizio pagina nelle API!!! Grazie!

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    83
    Originariamente inviato da Lasentinella
    1) per eliminare una riga devo leggere tutte le righe tranne quella interessata e riscriverle in un altro file (in che modo?) oppure esiste un modo più semplice?
    si devi fare in quel modo

  5. #5
    Ho creato un metodo che rinomina un file
    codice:
    File fp = new File(file.getAbsolutePath()+"ToDel");
    String nameFile=file.getName();	
    file.renameTo(fp);
    delete(file.getAbsolutePath());
    file = new File(fp.getAbsolutePath());

    Il problema è che, in questo modo, se si fa riferimento a file e non a fp si fa riferimento al file cancellato..è come se non venisse aggiornato il "riferimento", che ora dovrebbe essere fp..qualcuno sa dirmi cosa succede?

  6. #6
    Ora la parte sopra funziona....i misteri dell'informatica (o delle cose che faccio io )

    Ho scritto questo codice per leggere il file di testo e cancellare la linea pos. Al posto della linea pos metto una newline...
    non capisco se è la condizione while(scan.hasNext()){ che è sbagliata, perché scrive all'infinito sul file!!!!!!!
    Ho capito che è perché fa NewLine() e quindi ci sarà sempre una riga, ma non riesco a modificarla nel moto giusto..

    codice:
       
    public String extractLine(File file, int pos){
       String incoming = "";
       String stringToReturn="";
       int lineNumber=0;
    
       while(scan.hasNext()){
    
    			if(lineNumber==pos)
    			{        
                            stringToReturn=scan.nextLine();
    
    
    			 bwStore.write("\\n");
    			 bwStore.newLine();
                             lineNumber++;
    
    		 	}
    			else
    			{
    				bwStore.write(incoming);
    				bwStore.newLine();
    				
    	                        lineNumber++;
    
    			}
    		}
    VVoVe:

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.