vérifier l'existence du fichier java
Je veux créer un fichier texte, mais si le fichier existe déjà, il ne faut pas créer de nouveau fichier, mais devrait ajoutez le texte pour le contenu (à la fin) du fichier existant. Comment puis-je le faire en Java?
pour chaque seconde je suis en train de lire des données à partir d'inputstream quand j'ai arrêter de lire et de nouveau je commence la lecture des données, à ce moment, je devrais écrire le même fichier si fichier existe déjà
n', je dois vérifier la condition:
if(file.exists){
} else{
new File();
}
Ce que je dois faire?
Votre question n'est pas claire, mais je suppose que vous voulez ajouter à un fichier s'il existe déjà, non?
oui, voulez ajouter à un fichier s'il existe déjà
oui, voulez ajouter à un fichier s'il existe déjà
OriginalL'auteur | 2009-08-06
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le code suivant pour ajouter un fichier qui existe déjà -
Si le deuxième argument en FileWriter de l' constructeur est
true
, puis d'octets peut être écrit à la fin du fichier, plutôt qu'au début.Citant Etienne commentaire:
true
que le 2ème argument entraîne le fichier doit être créé si il n'existe pas et d'être ouvert pour permettre l'ajout si elle n'existe pas.C'est la meilleure façon d'aborder ce problème. Tous les autres puis-créer des méthodes peut échouer en raison de la non-atomique à des opérations de fichier. Sur la plupart des systèmes, l'ajout de créer l'opération est atomique. La classe FileOutputStream directement une FileDescriptor en mode ajout, qui est le bon fonctionnement.
OriginalL'auteur Kirtan
Non, vous n'avez pas à le faire: voir les autres réponses pour la solution.
En fait, il serait un mauvaise idée à faire quelque chose comme ça, car elle crée un potentiel condition de concurrence qui pourraient rendre votre application parfois mourir ... ou tabasser un fichier!
Supposons que le système d'exploitation préempté votre demande immédiatement après la
file.exists()
appel renvoiefalse
, et a donné le contrôle à une autre application. Ensuite, supposons que l'application a créé le fichier. Maintenant, quand votre application est repris par le système d'exploitation, il ne se rendront pas compte que le fichier a été créé, et d'essayer de créer lui-même. Selon les circonstances, cela peut tabasser le fichier existant, ou il peut provoquer cette application pour lancer une IOException en raison d'un fichier de verrouillage de conflit.D'ailleurs,
new File()
ne causent pas de tout objets du système de fichiers à créer. Que se produit uniquement lorsque vous "ouvrir" le fichier; par exemple, en appelantnew FileOutputStream(file);
OriginalL'auteur Stephen C
Si vous souhaitez ajouter le fichier s'il existe déjà, il n'y a pas besoin de vérifier son existence à l'aide d'
exists()
. Vous avez simplement besoin de se créer unFileWriter
avec l'ajout indicateur a la valeur true; par exemple,Cela va créer le fichier s'il n'existe pas ou bien d'en ajouter à la fin de celui-ci autrement.
OriginalL'auteur Adamski