Durante o processo de desenvolvimento, você pode encontrar a conversão de codificação de arquivos. Embora o eclipse da ferramenta de desenvolvimento possa converter a codificação, é inconveniente em alguns casos. Por exemplo, o código original do próprio arquivo era GBK, mas agora precisa ser convertido para o UTF-8. Se a codificação do arquivo for modificada diretamente para o UTF-8 no Eclipse, parabéns, ela é iluminada, porque não pode ser convertida diretamente do GBK para o UTF-8, precisamos converter manualmente a codificação. Abaixo está uma classe de ferramenta de conversão de codificação de arquivo.
pacote com.mikan.stuff; importar java.io.file; importar java.io.fileInputStream; importar java.io.fileOutputStream; importar java.io.filenameFilter; importar java.io.inputStream; importar java.io.inputStreamReader; importar java.io.OutputStream; importar java.io.OutputStreamWriter; importar java.nio.charset.charset; importar java.nio.charset.unsupportDcharsetexception; public class FileCharSetConverter {public static void main (string [] args) lança exceção {convert ("d: //stuff//src//main//java//com/mikan//stuff//test.txt", "gbk," utf-8 ", newnameFilter () {" name.endswith ("txt"); } / ** * Converta o arquivo ou diretório especificado para o arquivo de codificação especificado * * @param filename * a ser convertido * @param de versarsetName * codificação do arquivo de origem * @param toCesetName * codificação para ser convertida * @throws Exception * / public static convert (string FilleName, a partir de stringtName, a partir de stringname, a partir de string (stringn), stringname (stringtname stringn), a partir de string (string), a stringname de stringname (stringtname de stringn) string (stringn) string (stringn) string (stringn) stringname para ser convertido * @throws Exception * / público Arquivo (nome do arquivo), do nome do nome, toCharsetName, null); } /** * Convert the specified file or directory to the specified encoding* * @param file * File or directory to be converted* @param fromCharsetName * Encoding of the source file* @param toCharsetName * Encoding to be converted* @throws Exception */ public static void convert(File file, String fromCharsetName, String toCharsetName) throws Exception { convert(file, FromCharSetName, toCharSetName, null); } / ** * Converta o arquivo ou diretório especificado no codificação especificada * * @param arquivo * arquivo ou diretório para ser convertido * @param dearsetName * codificação do arquivo de origem * @param toCarsetName * codificação para ser convertida * @param filtro nome * @throws * / public STATS Void Convers FileNamefilter filtro) lança Exceção {convert (novo arquivo (nome do arquivo), doarsetName, toCharsetName, filtro); } / ** * Converta o arquivo ou diretório especificado no codificação especificada * * @param arquivo * arquivo ou diretório para ser convertido * @param dearsetName * codificação do arquivo de origem * @param toCarsetName * codificação para ser convertida * @param name file filtro * string de string de linha de linha * / public static kod Convert (FILHOTEM String, filtro de filtro de filtro * / public * / public * filtro) lança exceção {if (file.isdirectory ()) {file [] filelist = null; if (filtro == null) {filelist = file.listfiles (); } else {filelist = file.listfiles (filtro); } para (Arquivo F: FILELIST) {Convert (f, FromCharSetName, toCharSetName, filtro); }} else {if (filtro == null || filter.accept (file.getParentFile (), file.getName ())) {string FileContent = getFileContentFromCharset (arquivo, decarsetName); savefile2charset (arquivo, toCharsetName, FileContent); }}} / ** * Leia o arquivo na codificação especificada e retorne o conteúdo do arquivo * * @param arquivo * arquivo a ser convertido * @Param FromCharSetName * codificação do arquivo de origem * @RETURN * @THARSCECTNAMET * / public STATIC StractFilEContentFromSet (arquivo de arquivo, do stringScharStName) STATCECTION { Não suportadoCharseTexception (FromCharSetName); } InputStream inputStream = new FileInputStream (arquivo); InputStreamReader Reader = new InputStreamReader (InputStream, FromCharSetName); char [] chs = novo char [(int) file.length ()]; leitor.read (chs); String str = new String (chs) .Trim (); leitor.close (); retornar str; } / ** * Escreva o arquivo de texto em um método de codificação especificado, a existência substituirá o arquivo * * @param * a ser escrito * @param toCarsetName * codificação para ser convertida * @param content * arquivo de arquivo * @ThOrTOlTep Exception * / public STATIC Void SalveFile2char (arquivo de arquivo, stringsetName, string)) lançar uma nova não suportadaCharseTexception (TOcharSetName); } OutputStream outputStream = new FileOutputStream (arquivo); OutputStreamWriter outWrite = new OutputStreamWriter (outputStream, toCharSetName); outWrite.Write (Content); outWrite.Close (); }}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.