java更改文件字符集編碼


/* *
     * @Author adolph
     * @Description 更改文件的字符集編碼
     * @Date 9:19 2020/5/26
     * @Param [file,contentType]
     * @return java.io.File
    **/
    public File changedContentType(File file,String contentType) throws IOException{
        //獲取已獲取的字符輸入流
        FileInputStream fis = new FileInputStream(file);
        InputStreamReader isr = new InputStreamReader(fis);
        BufferedReader br = new BufferedReader(isr);
        String str = null;
        // 創建StringBuffer字符串緩存區
        StringBuffer sb = new StringBuffer();
        // 通過readLine()方法遍歷讀取文件
        while ((str = br.readLine()) != null) {
            // 使用readLine()方法無法進行換行,需要手動在原本輸出的字符串后面加"\n"或"\r"
            str += "\n";
            sb.append(str);
        }
        String fileSource = sb.toString();
        // 以GBK格式寫入文件,file.getAbsolutePath()即該文件的絕對路徑,false代表不追加直接覆蓋,true代表追加文件
        FileOutputStream fos = new FileOutputStream(file.getAbsolutePath(), false);
        OutputStreamWriter osw = new OutputStreamWriter(fos, contentType);
        try{
            osw.write(fileSource);
            return file;
        }catch(Exception e){
            e.printStackTrace();
            return null;
        }finally {
            osw.flush();
            osw.close();
            fos.close();
            br.close();
            isr.close();
            fis.close();
        }
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM