Java文件读、写操作指定的编码格式
1、读文件BufferedReader从字符输入流中读取文本缓冲各个字符从而提供字符、数组和行的高效读取。可以指定缓冲区的大小或者可使用默认的大小。大多数情况下默认值就足够大了。通常Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader如 FileReader 和 InputStreamReader。例如BufferedReader in new BufferedReader(new FileReader(foo.in));将缓冲指定文件的输入。如果没有缓冲则每次调用 read() 或 readLine() 都会导致从文件中读取字节并将其转换为字符后返回而这是极其低效的。可以对使用 DataInputStream 进行按原文输入的程序进行本地化方法是用合适的 BufferedReader 替换每个 DataInputStream。为了指定文件的编码方式再进入如下修改//BufferedReader in new BufferedReader(new FileReader(saveFilename)); BufferedReader in new BufferedReader(new InputStreamReader(new FileInputStream(saveFilename),GB2312));2、写文件BufferedWriter将文本写入字符输出流缓冲各个字符从而提供单个字符、数组和字符串的高效写入。可以指定缓冲区的大小或者接受默认的大小。在大多数情况下默认值就足够大了。该类提供了 newLine() 方法它使用平台自己的行分隔符概念此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 (\n) 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。通常 Writer 将其输出立即发送到基础字符或字节流。除非要求提示输出否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer如 FileWriters 和 OutputStreamWriters。例如PrintWriter out new PrintWriter(new BufferedWriter(new FileWriter(foo.out)));将缓冲 PrintWriter 对文件的输出。如果没有缓冲则每次调用 print() 方法会导致将字符转换为字节然后立即写入到文件而这是极其低效的。为了指定文件的编码方式:PrintWriter out new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(saveFilename),GB2312)));