add async read file
abstract cachedbuffer