Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    87

    (java)problemi con stringhe

    ciao a tutti ho un problema con le stringhe:
    vorrei leggere un file txt e andare a cancellare alcune righe o caratteri all'interno del file.questo è il codice che ho usato per leggere:
    public static void main(String args[]) throws Exception {
    //leggi
    FileReader fr = new FileReader("c:\\dati.txt");
    BufferedReader br = new BufferedReader(fr);
    String s;
    while((s = br.readLine()) != null) {
    System.out.println(s);
    }
    fr.close();

    così mi stampa a video il file cosi com'è.
    vorrei cancellare alcune righe del file e alcuni caratteri per poi salvarlo.
    come faccio?
    pensavo di utilizzare questi comandi ma come li metto insieme?

    try {
    PrintStream ps = new PrintStream( new FileOutputStream( "c:\\Dati.TXT" ) );
    BufferedReader cr = new BufferedReader( new InputStreamReader( System.in ) );
    ps.println(s);
    } catch (Exception e) { e.printStackTrace(); }

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    118

    Re: (java)problemi con stringhe

    Originariamente inviato da roky79

    FileReader fr = new FileReader("c:\\dati.txt");
    PrintStream ps = new PrintStream( new FileOutputStream( "c:\\Dati.TXT" ) );
    scusate l'ignoranza, ma che file è in C:\\ ??

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    87
    c'è un file con del testo non formattato!ci sono caratteri che devo eliminare per poter importare in file come dati in excel!!

  4. #4
    Utente di HTML.it L'avatar di Fox82
    Registrato dal
    Feb 2002
    Messaggi
    459
    Forse si riferiva alla doppia barra... :master:

    Comunque è un carattere di escape, in quanto la barra è utilizzata per indicare caratteri speciali (\n, \t, ecc) e quindi non la puoi utilizzare singolarmente...

    Se non era questa la domanda scusate
    Linux user number 403381

    Stop TCPA!

  5. #5
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Un modo di procedere è questo:

    1) Leggi tutto il file, riga per riga, come hai già fatto.

    2) Ogni volta che leggi una riga ce l'hai in un oggetto String (s), che puoi manipolare a tuo piacimento: puoi controllare se ci sono i caratteri che devi eliminare (utilizzando, per esempio, il metodo indexOf() che restituisce la posizione della stringa passata come parametro, se esiste), quindi puoi elaborarla facendo uso dei metodi substring() per "tagliare" la stringa e/o concat() per concatenare stringhe (lo puoi fare anche con l'operatore + ).

    3) Salvi ciascuna delle righe in un Vector (così non ti devi preoccupare di quante siano queste righe).

    4) Ricostruisci l'intero file salvandoci dentro ciascuna delle righe salvate nel Vector.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    87
    l'idea è ottima ma come si fa?
    non ho idea di come fare!!
    la Stringa s come faccio a manipolarla per fare quello che devo?
    potresti indicarmi come codice per codice

  7. #7
    Utente di HTML.it L'avatar di Angelo1974
    Registrato dal
    Feb 2003
    Messaggi
    1,107
    Semplicemente così:

    public static void main(String args[]) throws Exception {
    Vector appoggio = new Vector();
    //leggi
    FileReader fr = new FileReader("c:\\dati.txt");
    BufferedReader br = new BufferedReader(fr);
    String s;
    while((s = br.readLine()) != null) {
    System.out.println(s);
    appoggio.add(s);
    }
    fr.close();
    String elemento = null;
    for( int i = 0; i < appoggio.size(); i++ ){

    elemento = ( String )( appoggio.get( i ) );
    if( elemento.indexOf( tua_stringa_da_cercare ) > -1 ){

    appoggio.remove( i );
    }
    }


    try {
    //true significa aggiungi e non sovrascrivi
    PrintWriter ps = new PrintWriter( new FileOutputStream( "c:\\Dati.TXT" ), true );
    for( int i = 0; i < appoggio.size(); i++ ) {

    ps.println( ( Sttring )( appoggio.get( i ) ) );
    }
    ps.close();
    } catch (Exception e) { e.printStackTrace(); }

    Non l'ho provata ma penso che dovrebbe funzicare.
    Ciao
    Se vuoi trovare l'arcobaleno, devi sopportare la pioggia

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.