J'essaye d'écrire un fichier audio en utilisant le System.IO.BinaryWriter
class de C#.Ecriture de fichier en utilisant System.IO.BinaryWriter
Il fonctionne très bien quand je joue cette action:
File.WriteAllBytes(@"C:\TestFile\File1", br.ReadBytes((int)br.BaseStream.Length));
Cependant, il ne fonctionne pas quand je fais ce qui suit:
Encoding e = Encoding.ASCII;
char[] reslts = e.GetChars(br.ReadBytes((int)br.BaseStream.Length));
br.BaseStream.Position = 0;
File.WriteAllBytes((@"C:\TestFile\File2",e.GetBytes(reslts));
J'ai vérifié les tableaux d'octets, dans les deux cas le tableau contenait les mêmes valeurs (j'ai copié leur valeur dans un fichier Excel séparé et vérifié pour voir s'il y a des différences, il n'y en a pas).
Dans les deux cas, la position de flux de base est fixé à 0.
Le code lui-même fonctionne, le fichier est créé avec succès. Le problème se produit lorsque j'ouvre le fichier, le premier fichier fonctionne correctement, le deuxième fichier n'est pas reconnu par Windows Media Player.
Est-ce que quelqu'un a des idées de ce que je pourrais faire de mal?
"Jamais, jamais lu des données binaires arbitraires comme si c'est du texte" - si vous dites presque jamais je suis d'accord. Mais j'ai vu des cas où cela est utile, par ex. envoi de messages via un port série composé de caractères de contrôle et de texte ASCII. Dans ce cas, il peut être plus facile de traiter le message comme une chaîne. – Joe