using BufferedInputFile to read input file, good: buffer proteced non-direction operation on file, bad: no streaming
add output, thereis a shortCut if we want to use PrintWriter, BufferedWriter dont really to be called everytime