Pages: [1]   Go Down
Print
Author Topic: Sovrascrivere un file (ma non cancellarlo del tutto)  (Read 2604 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
milos224
Forumista
***
Offline Offline

Posts: 830


« on: 07-06-2012, 23:20:59 »

Vorrei fare una cosa molto semplice. Ho un file di testo, dove nella prima riga c'è scritto "ciao" e nella seconda "rosso". Voglio modificare quel file e al posto di rosso voglio mettere verde. Come faccio?
readLine() non lo posso usare nella classe writer.. suggerimenti?
Logged
Nessuno
Apprendista Forumista
**
Offline Offline

Posts: 204



« Reply #1 on: 08-06-2012, 08:08:45 »

Vorrei fare una cosa molto semplice. Ho un file di testo, dove nella prima riga c'è scritto "ciao" e nella seconda "rosso". Voglio modificare quel file e al posto di rosso voglio mettere verde. Come faccio?
readLine() non lo posso usare nella classe writer.. suggerimenti?
Prendi il file e lo copi una riga per volta su un file temporaneo, quando incontri la linea da eliminare la salti e riprendi dalla linea successiva. Al termine sovrascrivi il file originale con il temporaneo
Logged

Sorridi anche se il tuo sorriso è triste, perchè più triste di un sorriso triste c'è la tristezza di non saper sorridere.

::Jim Morrison::
milos224
Forumista
***
Offline Offline

Posts: 830


« Reply #2 on: 08-06-2012, 09:08:02 »

Vorrei fare una cosa molto semplice. Ho un file di testo, dove nella prima riga c'è scritto "ciao" e nella seconda "rosso". Voglio modificare quel file e al posto di rosso voglio mettere verde. Come faccio?
readLine() non lo posso usare nella classe writer.. suggerimenti?
Prendi il file e lo copi una riga per volta su un file temporaneo, quando incontri la linea da eliminare la salti e riprendi dalla linea successiva. Al termine sovrascrivi il file originale con il temporaneo
Scusami come scorro il file riga per riga? readLine posso solo usarlo sulla classe Reader.. inoltre io non voglio saltare la riga ma sostituirla con un'altra..
Logged
alex180788
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 422


« Reply #3 on: 08-06-2012, 10:34:50 »

1) di quale linguaggio di programmazione stiamo palrando?
2) (in base alla risposta del punto 1)... hai cercato tra le funzioni di gestione delle stringhe?... spesso esistono soluzioni per trovare e sostituire parole all'interno di una stringa (..riga) semplicemente con una funzione... anche se non esistessero potresti crearle semplicemente tu
Logged

Codice etico e di pratica professionale dello sviluppo software:
..
..
7. Colleghi. Gli sviluppatori software devono essere leali e di supporto nei confronti dei loro colleghi.
...
milos224
Forumista
***
Offline Offline

Posts: 830


« Reply #4 on: 08-06-2012, 11:09:59 »

1) di quale linguaggio di programmazione stiamo palrando?
2) (in base alla risposta del punto 1)... hai cercato tra le funzioni di gestione delle stringhe?... spesso esistono soluzioni per trovare e sostituire parole all'interno di una stringa (..riga) semplicemente con una funzione... anche se non esistessero potresti crearle semplicemente tu
java
Logged
Nessuno
Apprendista Forumista
**
Offline Offline

Posts: 204



« Reply #5 on: 08-06-2012, 11:39:43 »

con il metodo readLine() leggi una riga per volta...creando un array di stringhe potresti mettere tutto li dento e poi scansionartelo con calma dopo..
Logged

Sorridi anche se il tuo sorriso è triste, perchè più triste di un sorriso triste c'è la tristezza di non saper sorridere.

::Jim Morrison::
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #6 on: 08-06-2012, 12:25:34 »

Puoi aprire il file in lettura/scrittura

leggere fino a trovare la parte dove devi scrivere,

se la sostituzione è della stessa lunghezza, fai un seek alla posizione e scrivi; altrimenti devi leggere tutto fino alla fine del file, e dopo aver scritto la sostituzione devi scrivere tutto il resto.

Troncare il file se la nuova dimensione è minore della dimensione precedente, altrimenti il file viene ingrandito automaticamente dal sistema.

Non ho la minima idea di quali classi/metodi si debbano usare in java per fare questo, ma in C sarebbe tipo
open(..,O_RDWR)
read(...)
lseek(..)
write(..)
ftruncate(..)
close(..)

puoi googlare sugli equivalenti di queste funzioni in java.
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
milos224
Forumista
***
Offline Offline

Posts: 830


« Reply #7 on: 08-06-2012, 13:46:14 »

con il metodo readLine() leggi una riga per volta...creando un array di stringhe potresti mettere tutto li dento e poi scansionartelo con calma dopo..
Si è un'idea..
Ma quando leggo un file e poi lo chiudo con close(), se successivamente riuso il readLine() questo riparte dalla prima riga?
Logged
LtWorf
Forumista Esperto
****
Offline Offline

Posts: 1.079

Ogni cosa da me scritta è da intendersi come opinione personale e non come dato di fatto. Anche le eventuali dimostrazioni matematiche da me scritte saranno opinioni personali e quindi dovranno venire dimostrate da una terza parte di fiducia


WWW
« Reply #8 on: 08-06-2012, 14:56:53 »

Non puoi usare readLine su un file chiuso.
Logged

There are some OO programming languages. I will create the first -_-' language.

LtWorf
milos224
Forumista
***
Offline Offline

Posts: 830


« Reply #9 on: 08-06-2012, 20:18:30 »

Non puoi usare readLine su un file chiuso.
Se riapro il file, parte da zero no?
Logged
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #10 on: 09-06-2012, 19:20:07 »

Se riapro il file, parte da zero no?
Esatto

Qui il sorgente d'esempio
« Last Edit: 09-06-2012, 19:39:17 by zElOtO » Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
Pages: [1]   Go Up
Print
Jump to: