Мне нужно записывать массивы short [] размером 4 ГБ на диск и с диска, поэтому я нашел функцию для записи массивов и изо всех сил пытаюсь написать код для чтения массива с диска. Обычно я кодирую на других языках, поэтому, пожалуйста, простите меня, если моя попытка пока что немного жалкая:
using UnityEngine;
using System.Collections;
using System.IO;
public class RWShort : MonoBehaviour {
public static void WriteShortArray(short[] values, string path)
{
using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write))
{
using (BinaryWriter bw = new BinaryWriter(fs))
{
foreach (short value in values)
{
bw.Write(value);
}
}
}
} //Above is fine, here is where I am confused:
public static short[] ReadShortArray(string path)
{
byte[] thisByteArray= File.ReadAllBytes(fileName);
short[] thisShortArray= new short[thisByteArray.length/2];
for (int i = 0; i < 10; i+=2)
{
thisShortArray[i]= ? convert from byte array;
}
return thisShortArray;
}
}
thisShort : short[] = new short[];
- person Sam Axe   schedule 05.02.2020while (fs.Position < fs.Length)
. Я бы также переключился наLinkedList<short>
, чтобы мне не пришлось выделять 4 ГБ непрерывной памяти. LinkedList сохраняет указатель на следующий элемент / элемент, поэтому выделение памяти не обязательно должно быть непрерывным. - person Sam Axe   schedule 05.02.2020