Я нашел исходный код C#, который читается из файла с двойным номером 1000000. Исходный код приведен ниже.Чтение файла в C#
public void filereader()
{
using (BinaryReader b = new BinaryReader(File.Open("C:\\Users\\Hanieh\\Desktop\\nums.txt", FileMode.Open)))
{
int length = (int)b.BaseStream.Length;
byte[] fileBytes = b.ReadBytes(length);
for (int ii = 0; ii < fileBytes.Length - 32 ; ii++)
{
savg1[ii/2] = (double)(BitConverter.ToInt16(fileBytes, ii)/20000.0);// inja error index midee
ii++;
}
}
}
Когда я запускаю исходный код для чтения из текстового файла У меня есть ошибка, связанная с индексом savg1, который не связан. Я отлаживаю шаг за шагом, и результат показывает размер length = 24000000, но savg1 = 1000000. мой вопрос здесь: как работает этот исходный код и как я могу исправить эту проблему.
Первого совета: 'File.ReadAllBytes' является более простым способом чтения всех байт в файле ... Теперь мы не можем воспроизведите это, так как вы не показали, как вы объявили или инициализировали 'savg1' ... неясно, что вы подразумеваете под« size length = 24000000, но savg1 = 1000000 »... если вы имеете в виду длину файла 24000000, но размер 'savg' составляет 1000000, тогда это объясняет исключение ... вам нужно инициализировать его до нужного размера, который выглядит как' (fileBytes.Length) - 32/2' –
'fileBytes .Length - 32' почему '-32'? –
'BitConverter.ToInt16' и' double' 16bit & 64bit ... hu? –