Конвертировать музыкальный файл в байтовый массив c # как matlab - PullRequest
1 голос
/ 02 августа 2011

Я хотел бы преобразовать любой музыкальный файл в байтовый массив и распечатать результат в c #, как в MATLAB.

Я пробовал это;

System.IO.FileStream _FileStream = new System.IO.FileStream(_FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
System.IO.BinaryReader _BinaryReader = new System.IO.BinaryReader(_FileStream);

long _TotalBytes = new System.IO.FileInfo(_FileName).Length;
_Buffer = _BinaryReader.ReadBytes((Int32)_TotalBytes);

И код для печатина консоль:

Console.WriteLine( byteArrayToString(fileToByteArray("Penguins.jpg")) );

где код метода:

private static string byteArrayToString(byte[] p)
{
    string result = System.Text.ASCIIEncoding.ASCII.GetString(p);
    return result;
}

Когда я запускаю этот код, консоль сводит с ума ненужные символы, однако я хотел бы иметь массив, подобный MATLABвывод.

Как мне это сделать?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 02 августа 2011

Если вам нужен байтовый массив любого файла, просто сделайте следующее:

byte[] byteArrayFile = File.ReadAllBytes(source);
//source is the path to the file
0 голосов
/ 02 августа 2011

Вы действительно хотите персонажей?Если вам нужны цифры, создайте строку с числами.Я не знаю формат Matlabs, но скажу для вектора строки, как [N1, N2, N3]

private static string ByteArrayToString(byte[] p)
{
     StringBuilder sb = new StringBuilder("[");
     for(int i=0; i<p.Length; i++)
     {
          sb.Append(p[i]);
          if (i < p.Length - 1)
              sb.Append(',');
     }
     sb.Append("]");
     return sb.ToString();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...