Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 26
  1. #11
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    21
    ragazzi, qualcuno riesce a finire sto programma??

    mi servono ancora il

    // Metodo readLine: Questo metodo restituisce la riga alla posizione pos nel file file, contando da zero.
    public String readLine(File file, int pos){
    try{
    String line="";
    String stringaFile="";
    int i = 0;

    FileReader reader = new FileReader(file.getName());

    Scanner myRead = new Scanner(reader);

    while (myRead.hasNextLine()){
    stringaFile = stringaFile + myRead.nextLine();
    if (i==pos){System.out.println(stringaFile);
    return stringaFile;}
    else {i++;
    System.out.println(stringaFile);}
    }
    System.out.println(stringaFile);

    return "";
    }catch (FileNotFoundException exc){

    return "";
    }


    // Metodo extractLine: Questo metodo restituisce dal file file la riga alla posizione pos (contando da zero), inoltre rimuove tale riga dal file.
    public String extractLine(File file, int pos){
    return "";
    }


    // Metodo insertLine: Questo metodo inserisce content nel file file all'inizio linea di posizione pos contando da zero.
    public void insertLine(File file, String content, int pos){
    return;
    }


    mi date qualche dritta?? soprattutto xke non funziona il readline?? e gli altri 2 come dovrei procedere?? grazie mille

  2. #12
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Dbzworld
    // Metodo readLine: Questo metodo restituisce la riga alla posizione pos nel file file, contando da zero.
    Alcune cose:
    a) FileReader reader = new FileReader(file.getName());
    Non vedo perché tu debba usare getName(). Passa 'file' e basta.

    b) Sarebbe più utile e furbo se tu facessi ritornare null nel caso in cui la riga richiesta non venisse trovata e se lanciassi un IOException all'esterno del metodo nel caso di errore di I/O.

    c) Quand'è che fai il close del file?? Non lo vedo ....

    d) Hai messo una variabile 'line' ma non la usi.

    e) Che senso ha fare:
    stringaFile = stringaFile + myRead.nextLine();
    ?
    Così appendi una dietro all'altra tutte le righe fino a quella cercata, tra l'altro sono proprio una attaccata all'altra perché non c'è alcun newline in mezzo (visto che viene escluso da nextLine() ).

    Originariamente inviato da Dbzworld
    // Metodo extractLine: Questo metodo restituisce dal file file la riga alla posizione pos (contando da zero), inoltre rimuove tale riga dal file.

    // Metodo insertLine: Questo metodo inserisce content nel file file all'inizio linea di posizione pos contando da zero.
    Tieni sempre presente che l'inserimento o la rimozione "fisica" di dati in mezzo al file è una operazione non triviale, perché si deve riscrivere per intero il file. Si hanno almeno 2 possibilità: a) Leggere tutto il file e metterlo in memoria e poi riscriverlo con le dovute modifiche b) Leggere il file e man mano scrivere un secondo file temporaneo che poi alla fine sarà "spostato" (rinominato) con il nome originale.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #13
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    21
    a) ok

    b)è richiesto che ritornarni "",

    c)giusto!

    d) ah scusa, alcune cose le ho lasciate ma in realtà son da cancellare completamente, erano parte di vecchie prove e del file scaricato qui

    e) hai ragione sono un fesso..

    come vedi sono niubbissimo

    grazie dell'aiuto!

  4. #14
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    21
    ok, ho fatto funzionare il readfile! grazie mille!

    ora mancano gli altri due.. sentinella aveva postato una soluzione

    public String extractLine(File file, int pos){
    String incoming = "";
    String stringToReturn="";
    Scanner scan = new Scanner(file);
    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++;

    }
    }
    }

    apparte che non capisco bene cosa faccia, ma mi sembra riscriva in un file le cose, giusto? boh e comunque non capisco cosè bwStore

    mmm che palle sto programma

  5. #15
    Ciao! Ti scrivo il metodo aggiornato, probabilmente quello che hai visto era brutto, vecchio e sbagliato

    Per togliere una riga da un file di testo devi creare un file nuovo e riscriverci dentro tutto ciò che è scritto nel file originale tranne la riga che devi togliere. Siccome però non puoi creare un file con lo stesso nome di quello già presente ne devi creare uno col nome diverso, dopo aver copiato le righe cancelli quello originale e rinomini questo. Esempio:

    Ho un file di nome "Esempio".
    Rinomino il file in "EsempioToDel" e creo un nuovo file di nome "Esempio". Copio tutte le righe di EsempioToDel tranne quella in posizione pos nel file Esempio. Alla fine cancello EsempioToDel.


    codice:
    public String extractLine(File file, int pos){
    
    	if(file.isFile()&&pos>=0){
    
    		String stringToReturn="";
    		int lineNumber=0;
    
    		try{
    
    			File fp = new File(file.getAbsolutePath()+"ToDel");
    			String nameFile=file.getName();
    
    			if (file.renameTo (fp))	 {
    				delete(file.getName());
    			    file = new File(fp.getName());
    			}
    
    			File fDestStore = new File(path,nameFile);
    			fDestStore.createNewFile();
    
    			PrintWriter p=new PrintWriter(fDestStore);
    		    Scanner src = new Scanner(fp);
    		    src.useDelimiter("\n");
    
    			while(src.hasNext())
    			{
    
    				if(lineNumber==pos)
    		   			stringToReturn=src.next();
    		   		else
    		    		p.println(src.next());
    		    	lineNumber++;
    			}
    
    
    		    src.close();
    		    p.close();
    		    p.flush();
    
    			file.getName();
    			delete(file.getName());
    
    			return stringToReturn;
    
    
    
    		}catch (FileNotFoundException exc){
    			return "";
    		}
    Non so se capisci tutte le parti del codice (se sai usare le classi scanner e printwriter, che qui non fanno nulla di complicato), se hai dei dubbi chiedi pure! ciao!

  6. #16
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    21
    oh grazie mille.. immagino siamo compagni di corso

    grazie xke mi ha dato fino ad oggi x consegnarlo, xke non ero riuscito entro la scadenza

  7. #17
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    21
    Originariamente inviato da Lasentinella
    Ciao! Ti scrivo il metodo aggiornato, probabilmente quello che hai visto era brutto, vecchio e sbagliato

    Per togliere una riga da un file di testo devi creare un file nuovo e riscriverci dentro tutto ciò che è scritto nel file originale tranne la riga che devi togliere. Siccome però non puoi creare un file con lo stesso nome di quello già presente ne devi creare uno col nome diverso, dopo aver copiato le righe cancelli quello originale e rinomini questo. Esempio:

    Ho un file di nome "Esempio".
    Rinomino il file in "EsempioToDel" e creo un nuovo file di nome "Esempio". Copio tutte le righe di EsempioToDel tranne quella in posizione pos nel file Esempio. Alla fine cancello EsempioToDel.


    codice:
    public String extractLine(File file, int pos){
    
    	if(file.isFile()&&pos>=0){
    
    		String stringToReturn="";
    		int lineNumber=0;
    
    		try{
    
    			File fp = new File(file.getAbsolutePath()+"ToDel");
    			String nameFile=file.getName();
    
    			if (file.renameTo (fp))	 {
    				delete(file.getName());
    			    file = new File(fp.getName());
    			}
    
    			File fDestStore = new File(path,nameFile);
    			fDestStore.createNewFile();
    
    			PrintWriter p=new PrintWriter(fDestStore);
    		    Scanner src = new Scanner(fp);
    		    src.useDelimiter("\n");
    
    			while(src.hasNext())
    			{
    
    				if(lineNumber==pos)
    		   			stringToReturn=src.next();
    		   		else
    		    		p.println(src.next());
    		    	lineNumber++;
    			}
    
    
    		    src.close();
    		    p.close();
    		    p.flush();
    
    			file.getName();
    			delete(file.getName());
    
    			return stringToReturn;
    
    
    
    		}catch (FileNotFoundException exc){
    			return "";
    		}
    Non so se capisci tutte le parti del codice (se sai usare le classi scanner e printwriter, che qui non fanno nulla di complicato), se hai dei dubbi chiedi pure! ciao!
    allora, il metodo più o meno l'ho capito.. ma non mi funziona

    non capisco, praticamente il file diventa vuoto boh
    forse cancella tutto..

  8. #18
    mmmmmmmmm
    prova a vedere se negli altri metodi hai messo print.close (); (ad esempio nel metodo overwrite dovresti avere PrintWriter print=null quando hai dovuto scrivere su file, nel metodo readline() metti scan.close(); alla fine ...non so cos'altro dirti!
    Guarda un pò se gli altri metodi hanno gli scan chiusi e anche i printwriter..

    tutto al più scrivi qui i metodi che hai fatto che vediamo

  9. #19
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    21
    mmm ho controllato, ho chiuso tutto..
    è proprio come se creasse il file vuoto e lo lasciasse vuoto.. o estraesse tutte le linee
    xò è assurdo, se ti funziona dovrebbe funzionare anche a me

  10. #20
    File fDestStore = new File(path,nameFile);


    questo usa la variabile path, che ho messo globale all'inizio del programma...per intenderci
    codice:
    public class DirManager{
    
    	private File f;
    	private String path;
    l'hai messa anche te?
    E nel costruttore di DirManager hai inizializzato la variabile path così:

    codice:
    	public DirManager(File directory)  {
    
    		path=directory.getAbsolutePath();
    ?

    Ultima domanda: quanti controlli sbagliati ti dà la classe test?

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 © 2026 vBulletin Solutions, Inc. All rights reserved.