It's difficult to provide exact metrics telling you when you need to use buffered I/O. It depends on how many read and write operations you perform on a file, and on the size of these read and write operations. A general guideline is if you are doing a lot of I/O operations less than 2K each, then use buffered I/O. But this rule isn't absolute—it's best to understand exactly how your program uses file I/O and experiment to optimize file I/O for your program's requirements.