最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java IO文件編碼轉(zhuǎn)換實現(xiàn)代碼

 更新時間:2013年12月27日 16:08:18   作者:  
這篇文章主要介紹了Java IO文件編碼轉(zhuǎn)換實現(xiàn)代碼,有需要的朋友可以參考一下

對IO操作真心不是很懂。。。對編碼、亂碼也是一知半解。。。今天遇到了一個需求,要求將一個文件進(jìn)行編碼轉(zhuǎn)換,并且返回編碼后的字符串,如原本的GBK編碼,轉(zhuǎn)換為UTF-8

其中這個BytesEncodingDetect 類就不貼了。主要用了里面的獲取文件編碼格式。

剛開始試了直接在源文件修改編碼方式,采用URLEncoder和URLDecoder進(jìn)行轉(zhuǎn)換,卻遲遲不行。出現(xiàn)了中文奇數(shù)最后一個字亂碼

百度找了解決方法,都未果,只好采用我的思路是:先讀取源文件的內(nèi)容,存放到StringBuffer里面,然后刪除源文件,再重新new一個文件,再以另一中編碼形式存放進(jìn)去。

查看編碼后效果:注意不要在eclipse查看效果,eclipse以一種編碼形式查看而已,所以可以在瀏覽器端查看如html文件,查看指定編碼可以右鍵---編碼,以此來判斷是否成功。

復(fù)制代碼 代碼如下:

package com.test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.URLDecoder;
import java.net.URLEncoder;

public class Transcoding {
 private BytesEncodingDetect encode = new BytesEncodingDetect();
 public Transcoding() {
 }

 /**
  * 編碼轉(zhuǎn)換
  * @param toCharset 要轉(zhuǎn)換的編碼
  * @param path 要轉(zhuǎn)換的文件路徑
  * @return
  * @throws Exception
  */
 public String encoding(String toCharset, String path) throws Exception{
  File srcFile = new File(path);
  int index = encode.detectEncoding(srcFile);
  String charset = BytesEncodingDetect.javaname[index];
  // 編碼相同,無需轉(zhuǎn)碼
  if (charset.equalsIgnoreCase(toCharset)) {
   return "編碼一樣,無需轉(zhuǎn)換";
  }

  InputStream in = new FileInputStream(path);

  BufferedReader br = new BufferedReader(
    new InputStreamReader(in, charset));

  StringBuffer sb = new StringBuffer();
  String s1;
  while ((s1=br.readLine())!=null) {
   String s = URLEncoder.encode(s1, toCharset);
   sb.append(s+"\r\n");//一行+回車
  }

  br.close();
  srcFile.delete();//刪除原來文件
  //重新以新編碼寫入文件并返回值
  File newfile = new File(path);//重新建原來的文件
  newfile.createNewFile();
  OutputStream out = new FileOutputStream(newfile);
  OutputStreamWriter  writer = new OutputStreamWriter(out, toCharset);
  BufferedWriter bw = new BufferedWriter(writer);
  bw.write(URLDecoder.decode(sb.toString(), toCharset));
  String result = URLDecoder.decode(sb.toString(), toCharset);
  bw.flush();//刷到文件中
  bw.close();
  return result;
 }

}

相關(guān)文章

  • SpringBoot利用redis集成消息隊列的方法

    SpringBoot利用redis集成消息隊列的方法

    這篇文章主要介紹了SpringBoot利用redis集成消息隊列的方法,需要的朋友可以參考下
    2017-08-08
  • 使用Spring靜態(tài)注入實現(xiàn)讀取配置工具類新方式

    使用Spring靜態(tài)注入實現(xiàn)讀取配置工具類新方式

    這篇文章主要介紹了使用Spring靜態(tài)注入實現(xiàn)讀取配置工具類新方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 簡單分析Java的求值策略原理

    簡單分析Java的求值策略原理

    在本篇文章里小編給大家整理的是一篇關(guān)于簡單分析Java的求值策略原理內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2021-06-06
  • Java線程基本使用之如何實現(xiàn)Runnable接口

    Java線程基本使用之如何實現(xiàn)Runnable接口

    這篇文章主要介紹了Java線程基本使用之如何實現(xiàn)Runnable接口問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Redis實現(xiàn)商品秒殺功能頁面流程

    Redis實現(xiàn)商品秒殺功能頁面流程

    這篇文章主要介紹了Redis實現(xiàn)商品秒殺功能的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實例解析

    IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實例解析

    這篇文章主要介紹了IntellJ IDEA JAVA代碼任務(wù)標(biāo)記實例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • Java中EnvironmentAware 接口的作用

    Java中EnvironmentAware 接口的作用

    本文主要介紹了Java中EnvironmentAware 接口的作用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • 如何在spring官網(wǎng)查找XML基礎(chǔ)配置文件

    如何在spring官網(wǎng)查找XML基礎(chǔ)配置文件

    這篇文章主要介紹了如何在spring官網(wǎng)查找XML基礎(chǔ)配置文件,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-10-10
  • spring boot--從controller到DAO操作

    spring boot--從controller到DAO操作

    這篇文章主要介紹了spring boot--從controller到DAO操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 詳解Java String字符串獲取每一個字符及常用方法

    詳解Java String字符串獲取每一個字符及常用方法

    這篇文章主要介紹了詳解Java String字符串獲取每一個字符及常用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09

最新評論

庐江县| 和田县| 正定县| 柏乡县| 五台县| 溧水县| 抚松县| 和林格尔县| 昌平区| 鄂尔多斯市| 平昌县| 罗甸县| 静宁县| 澎湖县| 南华县| 志丹县| 包头市| 自贡市| 汉寿县| 南昌县| 南投市| 成武县| 永新县| 浪卡子县| 凌云县| 吉木萨尔县| 澄迈县| 芜湖县| 波密县| 台中市| 克什克腾旗| 同德县| 汪清县| 红原县| 玛多县| 略阳县| 旬阳县| 留坝县| 汉阴县| 美姑县| 梓潼县|