Java IO 파일 인코딩 구현 코드

IO 조작에 대해 진심으로 잘 몰라요...인코딩, 코드에 대해서도 반은 알고 반은 안다...인코딩된 파일을 인코딩하고 인코딩된 문자열(예: GBK 인코딩, UTF-8로 변환)을 반환해야 하는 요구 사항이 발생했습니다.
그중에 이 Bytes Encoding Detect류는 붙이지 않습니다.파일 인코딩 형식을 주로 사용했습니다.
처음에는 원본 파일에서 인코딩 방식을 직접 수정하고 URLEncoder와 URLDecoder로 변환하려고 했지만 늦어졌다.중국어 홀수 마지막 글자가 나왔어요.
바이두가 해결 방법을 찾았지만 모두 성공하지 못했다. 내 사고방식은 먼저 원본 파일의 내용을 읽고 StringBuffer에 저장한 다음에 원본 파일을 삭제하고 다시 new 파일을 다시 다른 인코딩 형식으로 저장하는 것이다.
인코딩 후 효과 보기: eclipse에서 효과를 보지 않도록 주의하십시오. eclipse는 인코딩 형식으로 볼 수 있기 때문에 브라우저에서 html 파일과 같은 인코딩을 볼 수 있습니다. 지정한 인코딩을 보면 오른쪽 단추로 인코딩을 해서 성공 여부를 판단할 수 있습니다.

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() {
 }

 /**
  *
  * @param toCharset
  * @param path
  * @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];
  // ,
  if (charset.equalsIgnoreCase(toCharset)) {
   return " , ";
  }

  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
");// +
  }

  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;
 }

}

좋은 웹페이지 즐겨찾기