fast enough depends on what you are trying to do. for most cases it’s totally ok and indeed pretty optimized. you can tweak the buffer size used when reading from a file by calling:
which by default is 1024 but higher or lower values might give you better results depending on the file size and even on the drive you are reading from;
As always with optimizations the best is to always try the simplest way of doing things first and if that’s slow then try to optimize, in this case perhaps reading to a string buffer directly which would avoid 1 copy but other than that unless you use some weird file reading mode like mapped memory files or unbuffered reads i don’t think you are going to get much faster reads from a normal file read