BufferedWriter.write()寫中文亂碼的解決辦法

在用BufferedReader和BufferedWriter讀寫文件的過程中,發(fā)現(xiàn)寫的文件中如果含有中文字符會有亂碼的情況昼蛀。
假設(shè)想把http://www.baidu.com百度首頁的內(nèi)容替換為自己想自定義的內(nèi)容棕兼,代碼如下:

/**
     * 通過網(wǎng)頁URL獲取源碼
     * @param getUrl
     */
    public static void catchHtmlCode(String getUrl){

        String filePath = "D:/test/test.html";
        BufferedReader buffreader = null;
        BufferedWriter writer = null;
        try {
            URL u = new URL(getUrl);
            URLConnection connection = u.openConnection();
            InputStream inputStream = connection.getInputStream();

            buffreader = new BufferedReader(new InputStreamReader(inputStream, "utf-8"));
            StringBuffer buff = new StringBuffer();
            String line;
            while (null != (line = buffreader.readLine())) {
                buff.append(line);
            }
            String html = buff.toString();
            Document doc = Jsoup.parse(html);
            Element body = doc.body();
            Element div = body.select(".head_wrapper").first();
            /*替換指定的html標(biāo)簽內(nèi)容*/
            div.html("<h1 style='font-size:30px'>我已將指定的html標(biāo)簽內(nèi)容替換為空</h3>");

            writer = new BufferedWriter(new FileWriter(filePath, false));
            writer.write(doc.html());
            writer.flush();

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            FileUtils.closeStream(buffreader);
            FileUtils.closeStream(writer);
        }
    }

當(dāng)我們使用以下方式創(chuàng)建流時陡舅,可能會出現(xiàn)中文亂碼,(程序斷點查看獲取到的中文字符沒有亂碼伴挚,是寫完文件之后打開亂碼靶衍,那就和具體生成文件默認(rèn)打開編碼設(shè)置有關(guān))

writer = new BufferedWriter(new FileWriter(filePath, false));

所以我們可以在創(chuàng)建流的時候指定編碼,如下:

writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(filePath)),"utf-8"));

這樣就解決了亂碼的問題茎芋。也可以設(shè)置為“GBK”等格式颅眶,看自己需求。
運行結(jié)果:

public static void main(String[] args) {
        catchHtmlCode("http://www.baidu.com");
    }

原文作者技術(shù)博客:http://www.reibang.com/u/ac4daaeecdfe
95后前端妹子一枚田弥,愛閱讀涛酗,愛交友,將工作中遇到的問題記錄在這里,希望給每一個看到的你能帶來一點幫助煤杀。
歡迎留言交流眷蜈。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市沈自,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辜妓,老刑警劉巖枯途,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異籍滴,居然都是意外死亡酪夷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進店門孽惰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晚岭,“玉大人,你說我怎么就攤上這事勋功√贡ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵狂鞋,是天一觀的道長片择。 經(jīng)常有香客問我,道長骚揍,這世上最難降的妖魔是什么字管? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮信不,結(jié)果婚禮上嘲叔,老公的妹妹穿的比我還像新娘。我一直安慰自己抽活,他們只是感情好硫戈,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著酌壕,像睡著了一般掏愁。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卵牍,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天果港,我揣著相機與錄音,去河邊找鬼糊昙。 笑死辛掠,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播萝衩,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼回挽,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了猩谊?” 一聲冷哼從身側(cè)響起千劈,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牌捷,沒想到半個月后墙牌,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡暗甥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年喜滨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撤防。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虽风,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出寄月,到底是詐尸還是另有隱情辜膝,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布剥懒,位于F島的核電站内舟,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏初橘。R本人自食惡果不足惜验游,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望保檐。 院中可真熱鬧耕蝉,春花似錦、人聲如沸夜只。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽扔亥。三九已至场躯,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間旅挤,已是汗流浹背踢关。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留粘茄,地道東北人签舞。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓秕脓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親儒搭。 傳聞我的和親對象是個殘疾皇子吠架,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 概述 java.io 包幾乎包含了所有操作輸入、輸出需要的類搂鲫。所有這些流類代表了輸入源和輸出目標(biāo)傍药。java.io ...
    Steven1997閱讀 9,192評論 1 25
  • IO概覽 字節(jié)流與字符流的區(qū)別字節(jié)流在操作時本身不會用到緩沖區(qū)(內(nèi)存),是文件本身直接操作的默穴,而字符流在操作時使用...
    Sophie12138閱讀 732評論 0 0
  • 編碼問題一直困擾著開發(fā)人員怔檩,尤其在 Java 中更加明顯,因為 Java 是跨平臺語言蓄诽,不同平臺之間編碼之間的切換...
    x360閱讀 2,480評論 1 20
  • 五、IO流 1媒吗、IO流概述 (1)用來處理設(shè)備(硬盤仑氛,控制臺,內(nèi)存)間的數(shù)據(jù)闸英。(2)java中對數(shù)據(jù)的操作都是通過...
    佘大將軍閱讀 508評論 0 0
  • 任何事物都是在矛盾中生存锯岖,而又在矛盾中發(fā)展。退休后的八年甫何,是我人生旅途最快樂的八年出吹,也是最有挑戰(zhàn)性的八...
    晨曦紅日閱讀 252評論 0 0