You can export as a MATLAB .mat
file if your array has less than 4 dimensions,
rand = RandomReal[1, {1000, 3, 3}];
Dimensions@rand
rand[[454, 1, 2]]
Export["random.mat", rand];
(* {1000, 3, 3} *)
(* 0.786307 *)
When you import it again, you have the same dimensions and the elements are the same
rand2 = Import["random.mat"];
Dimensions@rand2
rand2[[454, 1, 2]]
(* {1000, 3, 3} *)
(* 0.786307 *)
If you have 4 or more dimensions, you can export as an HDF file,
rand = RandomReal[1, {1000, 3, 3, 5, 5, 7, 4}];
Export["random.hdf", rand]
(* "random.hdf" *)
When you import it, it will tell you the names of the datasets stored in the file
Import["random.hdf"]
(* {"Dataset1"} *)
So when you import the data, you need to specify the dataset you are after,
rand2 = Import["random.hdf", {"Datasets", "Dataset1"}];
Dimensions@rand2
(* {1000, 3, 3, 5, 5, 7, 4} *)
rand == rand2
(* True *)
If you are exporting a lot of data, and don't need to read it with a text editor, then I would recommend always using one of these formats. The file sizes will be drastically smaller and read times faster because they are binary formats.