Je souhaite ajouter deux fichiers texte ensemble.Pourquoi StreamReader.ReadLine() renvoie une valeur pour un fichier d'une ligne sans saut de ligne?
J'ai un fichier avec un retour chariot à la fin. Observez le fichier A qui est de 28 octets.
c'est une ligne dans le fichier \ n
alors j'ai un autre fichier qui est la même chose sans la nouvelle ligne. Observe le fichier B qui est de 26 octets.
c'est une ligne dans le fichier
Je veux ajouter le même fichier lui-même (fichier A à A, et le fichier B to B) et de comparer le nombre d'octets.
Cependant, lors de l'utilisation StreamReader.ReadLine()
dans le dossier A, je reçois une valeur retournée, mais MSDN dit:
Une ligne est définie comme une séquence de caractères suivi d'un saut de ligne ("\ n"), un retour chariot ("\ r") ou un retour chariot immédiatement suivi d'un saut de ligne ("\ r \ n"). La chaîne renvoyée ne contient pas le retour chariot final ou le saut de ligne. La valeur renvoyée est null si la fin du flux d'entrée est atteinte.
Cependant, il n'y a pas de CRLF dans le fichier.
Comment puis-je ajouter ces fichiers en toute sécurité sans ajouter de saut de ligne supplémentaire à la fin? Par exemple, StreamWriter.WriteLine()
mettra un saut de ligne supplémentaire sur le fichier A lorsque je ne le souhaite pas. Quelle serait une approche idéale?
Si vous voulez juste ajouter le fichier entier, pourquoi êtes-vous vous-même avec de telles constructions concernant ont inventées en tant que «lignes» en premier lieu? Utilisez 'ReadToEnd' pour obtenir le tout, ou lisez le fichier un bloc à la fois. Il n'y a aucune raison de traiter un couple de caractères spécialement quand vous allez tout simplement les écrire mot pour mot de toute façon. –
J'étais préoccupé par l'utilisation de la mémoire pour les fichiers plus volumineux. Mais le traitement du fichier en morceaux est logique. –