StreamReader vs BinaryReader?
Les deux StreamReader
et BinaryReader
peut être utilisé pour obtenir des données à partir d'un fichier binaire ( par exemple )
BinaryReader :
using (FileStream fs = File.Open(@"c:.bin",FileMode.Open))
{
byte[] data = new BinaryReader(fs).ReadBytes((int)fs.Length);
Encoding.getstring....
}
StreamReader :
using (FileStream fs = File.Open(@"c:.bin",FileMode.Open))
{
using (StreamReader sr = new StreamReader(fs,Encoding.UTF8))
{
var myString=sr.ReadToEnd();
}
}
Quelle est la différence et quand dois-je utiliser qui ?
- L'un est adapté pour les fichiers texte, l'autre pour les fichiers binaires? Comme vous le même échapper à votre exemple de code.
- Houldsworth utf8 chaîne peut contenir des données binaires aussi.
- Oui, mais sans doute codé comme une chaîne UTF-8... donc pour l'essentiel serait de texte.
- n'est pas une chaîne utf8 peut contenir n'importe quelle info ?
- la chaîne peut contenir des données binaires" - que considérez-vous comme "données binaires" ?
- pour eaxmple : voir le jpeg contenu dans total commander
- tu veux dire les caractères de contrôle et d'octets en dehors de la plage ASCII?
- ouais.
Vous devez vous connecter pour publier un commentaire.
Bien,
StreamReader
peut être utilisé pour obtenir des données de texte à partir d'une représentation binaire de texte.BinaryReader
peut être utilisé pour obtenir des données binaires arbitraires. Si certains de données binaires arrive à être une représentation d'un texte, c'est très bien - mais il n'a pas à être.Ligne du bas:
StreamReader
.BinaryReader
Ainsi, par exemple, vous ne serait pas essayez de lire un fichier JPEG avec
StreamReader
.