首页 > Java > Java编码转换-TXT文件编码转换实例

Java编码转换-TXT文件编码转换实例

2010年7月5日 admin 发表评论 阅读评论

Java中编码转换用到的类主要为Charset,CharsetDecoder,CharsetEncoder类,下面举例展示一下如何使用这些类处理TXT文件的编码转换。

  1. import java.io.File;
  2. import java.io.RandomAccessFile;
  3. import java.nio.ByteBuffer;
  4. import java.nio.CharBuffer;
  5. import java.nio.MappedByteBuffer;
  6. import java.nio.channels.FileChannel;
  7. import java.nio.charset.Charset;
  8. import java.nio.charset.CharsetDecoder;
  9. import java.nio.charset.CharsetEncoder;
  10. public class TranslateCharset {
  11. static public void main(String args[]) throws Exception {
  12. String inFilename = ”inputFileName.txt”;
  13. String inFileCharsetName = ”InputFileCharSetName”;
  14. String outFilename = ”outputFileName.txt”;
  15. String outFileCharsetName = ”OutputFileCharSetName”;
  16. File infile = new File(inFilename);
  17. File outfile = new File(outFilename);
  18. RandomAccessFile inraf = new RandomAccessFile(infile, ”r”);
  19. RandomAccessFile outraf = new RandomAccessFile(outfile, ”rw”);
  20. FileChannel finc = inraf.getChannel();
  21. FileChannel foutc = outraf.getChannel();
  22. MappedByteBuffer inmbb =
  23. finc.map(FileChannel.MapMode.READ_ONLY, 0, (int) infile.length());
  24. Charset inCharset = Charset.forName(inFileCharsetName);
  25. Charset outCharset = Charset.forName(outFileCharsetName);
  26. CharsetDecoder inDecoder = inCharset.newDecoder();
  27. CharsetEncoder outEncoder = outCharset.newEncoder();
  28. CharBuffer cb = inDecoder.decode(inmbb);
  29. ByteBuffer outbb = outEncoder.encode(cb);
  30. foutc.write(outbb);
  31. inraf.close();
  32. outraf.close();
  33. }
  34. }

文本文件的编码转换是很常用的功能

相关日志

  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
Easy AdSense by Unreal