Keine Ahnung, wie viel man in einen String reinschreiben kann. Aber du kannst doch mehrere String-Variablen verwenden, praktisch ein String-Array.
Mit Byte-Array habe ich ein Array gemeint, dessen Elemente vom Typ "Byte" sind. Und der Wert eines jeden einzelnen Bytes aus deiner Gigadatei wird dann eben in jeweils eine Byte-Variable geschrieben.
Aber ist es denn wirklich notwendig, die gesamte Datei bei deinem Kopiervorgang im Arbeitsspeicher zwischenzulagern? Kannst du nicht einen Teil aus der Datei auslesen und ihn dann gleich in die andere Datei reinschreiben?