c# - Lire spécifiques octets d'un fichier
Est-il possible de lire les octets spécifiques à partir d'un fichier?
Par exemple, j'ai le code suivant pour lire tous les octets du fichier
byte[] test = File.ReadAllBytes(file);
Je veux lire les octets de réduire de 50 pour compenser 60 et les mettre dans un tableau.
Vous devez vous connecter pour publier un commentaire.
LINQ Version:
IEnumerable<byte>
en place deFile.ReadAllBytes
serait une approche efficace, surtout si la lecture d'un arbitraire de s'exécuter d'octets à partir d'un fichier a un besoin commun.Créer un BinaryReader, lire 10 octets commençant à l'octet 50:
reader.BaseStream.Seek(50, SeekOrigin.Begin);
Cela devrait le faire
À la fin,
data
contiendrait 10 octets entre le fichier du décalage de 50 et 60, etactualRead
contiendrait un nombre de 0 à 10, en indiquant le nombre d'octets ont été réellement lu (ce qui est d'intérêt lorsque le fichier a au moins 50 ans, mais moins de 60 octets). Si le fichier est de moins de 50 octets, vous verrezEndOfStreamException
.Vous avez besoin de:
Par exemple:
Vous pouvez utiliser filestream et ensuite appeler lire
Cochez cette exemple MSDN
FileStream.Read
est le décalage dans le array passé comme premier paramètre et pas le décalage dans le fichier. Donc en fait j'ai été correct! 🙂 (En l'état, le code va jeter parce indice 50 est au-delà de la fin debytes
.)