2010-04-20 4 views
1

Je voudrais supprimer une chaîne ou une ligne dans un fichier ".txt" (par exemple filen.txt). Par exemple, j'ai ces lignes dans le fichier:Comment supprimer une chaîne dans un fichier (.txt) en Java Programmation

1JUAN DELACRUZ
2jUan dela Cruz
3Juan Dela Cruz

Ensuite, supprimez la 2ème ligne (2jUan dela Cruz), de sorte que le » txt "fichier ressemblera:

1JUAN DELACRUZ
3Juan Dela Cruz

Comment est-ce que je peux faire ceci?

+1

Jetez un oeil à ceci: http: // stackoverflow.com/questions/822150/modifiez-un-txt-fichier-en-java –

Répondre

1

Obtenez une chaîne avec tout ce qui se trouve dans le fichier. Retirez ce que vous voulez. Ecrivez la chaîne dans le fichier, en supprimant tout ce qui existait auparavant. Simple.

+0

Ore a obtenir un StrignBuffer/Builder avec tout à partir du fichier ... etc. Avez-vous toujours considéré le cas lorsque le fichier est très grand? Ne serait-il pas inefficace de stocker une si grande quantité d'informations en mémoire? –

+0

C'est la bonne réponse pour les fichiers qui peuvent tenir dans la mémoire physique. Pour les fichiers qui ne peuvent pas, vous lisez la partie du fichier dans un tampon, vérifiez si le tampon a des lignes à supprimer et ensuite l'écrire dans un fichier temporaire et ainsi de suite. Lorsque vous avez terminé, remplacez le fichier original par le fichier temporaire en utilisant une fonction copier/déplacer/renommer le fichier. –

+0

-1 Il vaut mieux lire le fichier ligne par ligne (bloc) et ne copier que les lignes qui ne correspondent pas à la ligne à supprimer. – helpermethod

2

1) Scannez le fichier ligne par ligne et écrivez les résultats dans un autre fichier temporaire. Si vous rencontrez la chaîne dans une ligne, supprimez-la et n'écrivez que la ligne modifiée.

2) Supprimer le fichier initial et renommer le fichier temporaire avec le nom du fichier initial.

Pour ce faire, jetez un oeil à la classe File.

File file = new File("data.txt"); 

Puis « scan » le fichier en utilisant la classe Scanner, comme dans l'exemple suivant:

Scanner scanner = new Scanner(file); 
    while (scanner.hasNextLine()) { 
     String line = scanner.nextLine(); 
     /* Proccess line */ 
    } 

pour écrire des informations dans un nouveau fichier, jetez un oeil à PrintWriter classe.

EDIT PLUS TARD:

Si vous vous sentez à l'aise avec le concept de tampons, vous pouvez également utiliser BufferedReader avec sa fonction read, afin de traiter plus gros morceaux de données, au lieu de « lignes ».

0

c'est vraiment facile lire votre fichier dans une chaîne et de diviser cette chaîne dans la chaîne que vous voulez supprimer (dans votre cas "2jUan dela Cruz")

afin de charger votre fichier dans une chaîne utilisant ce code simple: (selon this page)

String text = new Scanner(new File("poem.txt")).useDelimiter("\\A").next(); 
String[] Splite= text.split("2jUan dela Cruz"); 
int size= Splite.length; 
String NewText; 

for(i=0; i<size ; i++){ 
    NewText+=Splite[i]; 
} 

// now your NewText String is ready to be written to your File 
Questions connexes