Java中PrintWriter使用方法介紹
簡介
PrintWriter 與 PrintStream 相同。PrintStream 隻能接字節流,而 PrintWriter 既能接字節流又能接字符流。
PrintStream 最終輸出的總是 byte 數據,而 PrintWriter 則是擴展瞭 Writer 接口,它的 print()/println() 方法最終輸出的是 char 數據。兩者的使用方法幾乎是一模一樣的。
文本文件的轉碼復制
public class Main { public static void main(String[] args) { System.out.println("輸入源文件"); String s = new Scanner(System.in).nextLine(); File from = new File(s); if (!from.isFile()) { System.out.println("請輸入正確的文件路徑"); return; } System.out.println("輸入目標文件"); s = new Scanner(System.in).nextLine(); File to = new File(s); if (to.isDirectory()) { System.out.println("請輸入具體的文件路徑,不是目錄路徑"); return; } System.out.println("輸入原文件字符編碼"); String fromCharset = new Scanner(System.in).nextLine(); System.out.println("輸入目標文件字符編碼"); String toCharset = new Scanner(System.in).nextLine(); try { copy(from, to, fromCharset, toCharset); System.out.println("復制成功"); } catch (Exception e) { System.out.println("復制失敗"); } } private static void copy(File from, File to, String fromCharset, String toCharset) throws Exception { // TODO Auto-generated method stub /** * BufferedReader * InputStreamReader,fromCharset * FileInputStream * from * * PrintWriter * OutputStreamWriter,toCharset * FileOutputStream * to * * 循環按行讀寫 * * */ BufferedReader in = new BufferedReader( new InputStreamReader( new FileInputStream(from), fromCharset)); PrintWriter out = new PrintWriter( new OutputStreamWriter( new FileOutputStream(to), toCharset)); String line; while ((line = in.readLine()) != null) { out.println(line); } in.close(); out.close(); } }
運行程序
f7 內容為:
轉為十六進制查看。原來編碼為 UTF-8,英文單字節,中文3字節
f7copy 內容:
轉為十六進制查看。現在編碼為 GBK,英文單字節,中文雙字節,增加瞭換行符
到此這篇關於Java中PrintWriter使用方法介紹的文章就介紹到這瞭,更多相關Java PrintWriter內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- java 使用readLine() 亂碼的解決
- Java常用數據流全面大梳理
- Java中IO流解析及代碼實例詳解
- Java在算法題中的輸入問題實例詳解
- Java中BufferedReader與Scanner讀入的區別詳解