Carotid3DStreamReader.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.IO;
  5. namespace WingAIDiagnosisService.Carotid.Utilities
  6. {
  7. class Carotid3DStreamReader
  8. {
  9. private readonly Stream _stream;
  10. public Carotid3DStreamReader(Stream stream)
  11. {
  12. _stream = stream;
  13. }
  14. /// <summary>
  15. /// Read a int32 value from the stream.
  16. /// </summary>
  17. /// <returns></returns>
  18. public int ReadInt()
  19. {
  20. var data = new byte[sizeof(int)];
  21. _stream.Read(data, 0, sizeof(int));
  22. return BitConverter.ToInt32(data, 0);
  23. }
  24. /// <summary>
  25. /// Read a byte array from the stream.
  26. /// </summary>
  27. /// <returns></returns>
  28. public byte[] ReadBytes()
  29. {
  30. var size = ReadInt();
  31. var data = new byte[size];
  32. _stream.Read(data, 0, size);
  33. return data;
  34. }
  35. /// <summary>
  36. /// Read string from stream.
  37. /// </summary>
  38. /// <returns></returns>
  39. public string ReadString()
  40. {
  41. var dataLength = ReadInt();
  42. var data = new byte[dataLength];
  43. _stream.Read(data, 0, dataLength);
  44. return Encoding.Unicode.GetString(data, 0, data.Length);
  45. }
  46. /// <summary>
  47. /// Read a float value from the stream.
  48. /// </summary>
  49. /// <returns></returns>
  50. public float ReadFloat()
  51. {
  52. var data = new byte[sizeof(float)];
  53. _stream.Read(data, 0, sizeof(float));
  54. return BitConverter.ToSingle(data, 0);
  55. }
  56. }
  57. }