1) The code isn't pretty but it works. If I comment the if with canIReadLine it simply creates a copy of a text file when I call
2) Don't use deprecated classes/methods. Use BufferedReader to read the file.
3) How big is your 'huge' file? ->
TellTheDetails! If you're trying to read a file that's a few Gigabytes in size, you cannot assume to hold it all in memory at once...
4) Debug information. Maybe it would be a good idea to log some debug information in your methods (e.g. to determine exactly what was the latest line you could read from the file before you got OutOfMemoryError)