La création, la rédaction et l'édition d'un même fichier texte en java
Disons que j'ai le code suivant:
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class EditFile {
public static void main(String[] args) {
try{
String verify, putData;
File file = new File("file.txt");
file.createNewFile();
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Some text here for a reason");
bw.flush();
bw.close();
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
while( br.readLine() != null ){
verify = br.readLine();
if(verify != null){
putData = verify.replaceAll("here", "there");
bw.write(putData);
}
}
br.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
Tout ce que je voulais faire était d'écrire quelque chose dans un fichier texte, dans mon cas, "un texte pour une raison". Puis de lire les données de mon fichier, et enfin changer mon texte à partir de mon fichier texte ici pour une raison" dans "texte là pour une raison". J'ai couru le code, mais il arrive à écrire dans mon fichier "texte ici pour une raison".
J'ai essayé de comprendre ce qui n'allait pas dans mon code, mais il était malheureusement en vain. Tout conseil ou de réécriture est très apprécié de moi.
- Le Problème est que vous ne pouvez pas lire le fichier ?
- Ce que vous essayez de réaliser n'est pas logique que vous tentez de
bw.write
après que vous avez déjàbw.close();
. En outre, en général, pourquoi voudriez-vous faire quelque chose comme ça ? si vous savez déjà ce que vous voulez changer - écrire une fois pour le fichier! (au lieu de l'écriture, de la lecture et de la ré-écriture) - C'est corect, je l'ai modifié et il a travaillé en quelque sorte. Vérifier mon dernier commentaire à partir du bas de la page, s'il vous plaît :). Merci en tout cas.
- N'est-ce pas quelque chose de spécial ce que je veux écrire dans mon fichier. L'idée principale est que ce que je suis en train de le faire est par la pratique, et l'une de mes idées était que: Écrire quelque chose dans un fichier texte, puis de modifier le fichier(la modification d'une chaîne par une autre) et, enfin, dans mon fichier existant à apparaître seulement la modification de la chaîne. Pouvez-vous gérer cela?
Vous devez vous connecter pour publier un commentaire.
Modifier votre code pour que:
Le Problème, c'est que vous appelez
br.readLine()
deux fois, ce qui est en train de provoquer l'application pour lire line1 et puis line2 et dans votre cas, vous avez une seule ligne, ce qui signifie que votre programme de lecture dans le conditionnel et quand il s'agit de déclarer la variableverify
, c'est s'arrêter parce que vous n'avez plus de données à lire votre fichier.Je voudrais faire de cette façon:
utiliser ce code, je l'ai utilisé pour retirer les bûches et du Système.hors des déclarations dans le fichier java.
il suffit de changer l'appariement et le remplacement de la chaîne.
Il n'est pas nécessaire de taper
bw.write(putData);
, car il vous suffit d'imprimer le relevé deux fois.Tout ce que vous voulez dans un fichier, il suffit de donner le chemin d'accès correct au fichier et d'utiliser le code ci-dessus en conséquence.