转换时可以指定编码格式:GBK、UTF-8
public class Demo { public static void main(String[] args) { File f = new File("word.txt"); FileOutputStream out = null;//字节流 OutputStreamWriter osw = null;//字节流转字符流 BufferedWriter bw = null;//缓冲字符流 try { out = new FileOutputStream(f); osw = new OutputStreamWriter(out, "GBK");//字节流转字符流,编码格式GBK bw = new BufferedWriter(osw); bw.write("夕西行"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally {//注意关闭顺序,由后至前 if (bw != null) { try { bw.close(); } catch (IOException e) { e.printStackTrace(); } } if (osw != null) { try { osw.close(); } catch (IOException e) { e.printStackTrace(); } } if (out != null) { try { out.close(); } catch (IOException e) { e.printStackTrace(); } } } FileInputStream in = null;//字节流 InputStreamReader isr = null;//字节流转字符流 BufferedReader br = null;//缓冲字符流 try { in = new FileInputStream(f); isr = new InputStreamReader(in, "GBK"); br = new BufferedReader(isr); System.out.println(br.readLine()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } if (isr != null) { try { isr.close(); } catch (IOException e) { e.printStackTrace(); } } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
关闭流的另外一种方法(推荐)。在try的()中写入代码,try-catch结束,流自动关闭
public class Demo { public static void main(String[] args) { File f = new File("word.txt"); //在try的()中写入代码,try-catch结束,流自动关闭 try (FileOutputStream out = new FileOutputStream(f); OutputStreamWriter osw = new OutputStreamWriter(out, "GBK"); BufferedWriter bw = new BufferedWriter(osw);) { bw.write("夕西行"); } catch (IOException e) { e.printStackTrace(); } FileInputStream in = null;//字节流 InputStreamReader isr = null;//字节流转字符流 BufferedReader br = null;//缓冲字符流 try { in = new FileInputStream(f); isr = new InputStreamReader(in, "GBK"); br = new BufferedReader(isr); System.out.println(br.readLine()); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) { try { br.close(); } catch (IOException e) { e.printStackTrace(); } } if (isr != null) { try { isr.close(); } catch (IOException e) { e.printStackTrace(); } } if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } } }