use rdbuf()