You no need to tie the file to an array, or load the file to an array to limit a file to N lines or bytes. You do however have to read in the file one way or another (unless you modify the filesystem directly), although not all at once. Maybe the simplest way is to call
tail:
tail -n N file > file.$$; mv file.$$ file # Keep last N lines
tail -c N file > file.$$; mv file.$$ file # Keep last N bytes