Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    [JAVA] modifica di un file txt

    ultimo mio dubbio è come modificare una stringa su una riga di file txt, esempio:

    Marco mele 0
    Luca pere 0

    moficarlo in

    Marco mele 1
    Luca pere 0

    qualche suggerimento?
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    72
    Allo stesso modo in cui abbiamo cancellato le stringhe.. Hai bisogno di un file temporaneo
    codice:
    String linea;
    File origine = new File(filePath);
    File temp = new File(filePathTemp);
    FileReader fr = new FileReader(origine);
    BufferedReader br = new BufferedReader(fr);
    FileWriter fw = new FileWriter(temp);
    BufferedWriter bw = new BufferedWriter(fw);
    while ((linea = br.readLine())!= null) {
         //codice necessario per modificare la linea
         bw.write(lineaModificata);
         bw.newLine();                         
    }
    br.close();
    bw.close();
    origine.delete();
    temp.renameTo(origine);

  3. #3
    si avevo un idea di fare un costrutto simile ma a me interessava proprio il codice per modificare la linea...
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    72
    Guarda qui: http://java.sun.com/javase/6/docs/ap...ng/String.html
    ci sono tutti i metodi associati alla classe stringa. Quello che ti può interessare è
    codice:
    substring(int beginIndex, int endIndex)
    usando substring prendi tutti i caratteri tranne l'ultimo (nel tuo esempio "Marco mele ") e poi aggiungi l'ultimo carattere (nel tuo esempio "1")
    Oppure potresti usare
    codice:
    replace(char oldChar, char newChar)

  5. #5
    thanks
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  6. #6
    ok con
    codice:
    substring(int beginIndex, int endIndex)
    prendo tutto tranne lo zero finale però poi per aggiungere il numero 1?
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    72
    Per concatenare le stringhe si usa l'opreratore +
    basta fare
    codice:
    linea=linea.substring(0, linea.length()-1)+"1";

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da fr84
    codice:
    linea=linea.substring(0, linea.length()-1)+"1";
    linea = linea.substring(0, linea.length()-1).concat("1");

    è un po' più efficiente (non ha bisogno di creare lo StringBuffer/StringBuilder e fare gli append).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    ho fatto così

    codice:
    public void Prova1(){
            Stringa st=new Stringa();
             String x;
             System.out.println("Inserisci etichetta numerica del pacco che si vuole cancellare");
             System.out.print("");
             x=st.leggiStringa();
            try{
                
            File origine=new File(path); //è il file da modificare
                
                File temp=new File(path); //file temporaneo su cui scrivo
                FileReader fr = new FileReader(origine);
                BufferedReader br=new BufferedReader(fr);
                
                FileWriter fw = new FileWriter(temp);
                BufferedWriter bw=new BufferedWriter(fw);
                
                String linea;
                
                 while((linea=br.readLine())!=null){
                    
                   linea = linea.substring(0, linea.length()-1).concat(x);
                        
                        bw.write(linea);
                        bw.newLine();
                    }
                 br.close();
                bw.close();
                origine.delete();
                temp.renameTo(origine);}
            catch (IOException ex) {
                ex.printStackTrace();
               }
        }
    però mi da un eccezione

    codice:
    Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
            at java.lang.String.substring(String.java:1938)
            at gestionepaccoprova.Prova.Prova1(Prova.java:36)
            at gestionepaccoprova.Main.main(Main.java:112)
    perche?
    Se ti dicono siediti e stai zitto...tu alzati e muori combattendo!!!

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da blackguardian
    perche?
    Se la linea è vuota "" l'indice end lo passi come -1 e succede che start (0) è maggiore di end (-1). Che è un errore secondo le specifiche di substring.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.