Puedes ir abriendo el archivo por "partes", y "mostrando" conforme vallas avanzando lo necesario, por ejemplo con un scroll vertical... O ir cargando lo que puedas en la variable tipo String. Es como haciendo un scroll pero en el archivo...
No se si me expliqué bien..., en realidad no vas a poder cargar 600 MB en una variable, pero si ir recorriendo el archivo... por partes.
No importa que tipo de archivo sea, cuando los habras van a ser todos iguales. La solucion para evitar el Bufer Overflow es crear un Bufer para abril el archivo, hacer un blucle e ir copiando por partes, ocea, lo abris, copias un pedaso, lo mandas por el socket, copias el pedaso siguiente, etc, etc.
Fijate que en el foro hay sobre transferencia de archivos.