轉換時能夠指定編碼格式: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結束,流自動關閉spa
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(); } } } } }