Bonsoir,
D'après mes connaissances, un fichier de type FileStream contient une sequence de bytes.
Cependant, ces bytes sont ils représentés sous forme binaire, hexadécimale ou pas forcément.
Quand je déboggue le programme suivant, je constate que dans le fichier de destination collection_nombres.bin, les données apparaissent au format hexadecimal.
Est-ce toujours ainsi ou cela varie -t-il (format binaire par exemple)en fonction de certains facteurs ?
Les données du fichier destFile de type FileStream qui migrent vers le fichier de destination collection_nombres.bin sont elles stockées automatiquement au même format dans ces deux fichiers?
Pour finir,pouvez-vous me confirmer qu'un objet de type Stream n'est utile en soi que parce qu'on peut accéder à ses données par le biais d'un objet de type BinaryReader ou BinaryWriter ou encore de type StreamReader ou StreamWriter.
Autre question : en quoi utiliser un objet de type FileStream améliore les performances d'une application?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public void test_writer() { //création d'un BinaryWriter string destinationFilePath = @"C:\Users\har@43\Documents\collection_nombres.bin"; //Collection de bytes byte[] dataCollection = {1,4,6,7,12,33,26,98,82,101}; //création d'un objet de type fileStream par le biais dulequel on peut interagir avec le ficher source FileStream destFile= new FileStream(destinationFilePath, FileMode.Create,FileAccess.Write); //on crée un objet de type BinaryWriter qui agit sur l'objet de type Stream BinaryWriter writer = new BinaryWriter(destFile); //on ecrit chaque byte verrs le stream foreach (byte data in dataCollection){ writer.Write(data); } //fermeture du stream et de l'objet BinaryWriter pour que les données soient inscrites //dans le fichier de destination writer.Close(); destFile.Close(); }
Pour finir, quand on lit par la méthode Read , les données contenues dans un dans un objet de type StreamReader, provenant d'un fichier texte, on obtient , par le biais d'un conversion en char, le caractère lu , comme le montre le code ci-dessous.
On sait que la méthode Read retourne une valeur de type int qui est celle de la valeur du byte lu; je ne comprends pas alors que la conversion en char puisse fonctionner .
Je vous remercie beaucoup de bien vouloir m'aider sur ce point.
Cordialement.
new_wave
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 StreamReader reader = new StreamReader(sourceFile); StringBuilder filecontents = new StringBuilder(); while(reader.Peek()!=-1){ fileContents.Append((char)reader.Read()); } string Data = fileContents.ToString(); reader.Close(); sourceFile.close();
Merci beaucoup de votre aide sur tous ces points .
Cordialement.
curieuse_prog
Partager