一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語(yǔ)言 - JAVA教程 - Java IO文件編碼轉(zhuǎn)換實(shí)現(xiàn)代碼

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

2019-10-26 16:44java教程網(wǎng) JAVA教程

這篇文章主要介紹了Java IO文件編碼轉(zhuǎn)換實(shí)現(xiàn)代碼,有需要的朋友可以參考一下

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

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

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

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

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

 

復(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];
  // 編碼相同,無(wú)需轉(zhuǎn)碼
  if (charset.equalsIgnoreCase(toCharset)) {
   return "編碼一樣,無(wú)需轉(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();//刪除原來(lái)文件
  //重新以新編碼寫入文件并返回值
  File newfile = new File(path);//重新建原來(lái)的文件
  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;
 }

}

 

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久学生精品国产自在拍 | 91麻豆精东果冻天美传媒老狼 | xxx黑人又大粗又长 xxxx性欧美极品另类 | 欧美靠逼 | 日韩一级在线观看 | 91chinese 永久免费 | 欧美式禁忌 | 国产重口老太伦 | 国产主播福利在线观看 | 午夜精品久久久久久久99蜜桃i | 男人在女人下面狂躁 | 女暴露狂校园裸露小说 | 国产色站 | 亚洲AV国产精品无码精 | 国色天香社区视频免费观看3 | 久久精品热在线观看30 | 国产99久久久国产精品成人 | 男女性刺激爽爽免费视频 | 日本一区二区三区国产 | 极品美女写真菠萝蜜视频 | 美女曰逼视频 | 国产欧美日韩专区 | 欧美极品摘花过程 | 色先锋影音资源 | 国模李丽莎大尺度啪啪 | 大胸纲手被羞羞漫画网站 | 青草视频网站在线观看 | 91在线精品视频 | 三年片韩国在线观看 | 日韩免费视频播放 | 国产欧美日韩精品在线 | 精品国产线拍大陆久久尤物 | 亚洲成人黄色网址 | 2021精品国夜夜天天拍拍 | 丝袜足控免费网站xx动漫漫画 | 亚欧综合 | 高清男的插曲女的 欢迎你老狼 | 99久久无色码中文字幕 | 亚洲精品AV无码永久无码 | 国产成人91高清精品免费 | 国产99在线观看 |