PDA

Visualizza la versione completa : (java)problemi con stringhe


roky79
18-05-2004, 18:46
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

conqueror
18-05-2004, 19:46
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:\\ ??

roky79
19-05-2004, 09:16
c' un file con del testo non formattato!ci sono caratteri che devo eliminare per poter importare in file come dati in excel!!

Fox82
19-05-2004, 09:59
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 :bh:

LeleFT
19-05-2004, 10:19
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. :ciauz:

roky79
19-05-2004, 12:29
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

Angelo1974
19-05-2004, 15:25
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 :ciauz:

Loading