Java编码转换-TXT文件编码转换实例
Java中编码转换用到的类主要为Charset,CharsetDecoder,CharsetEncoder类,下面举例展示一下如何使用这些类处理TXT文件的编码转换。
- import java.io.File;
- import java.io.RandomAccessFile;
- import java.nio.ByteBuffer;
- import java.nio.CharBuffer;
- import java.nio.MappedByteBuffer;
- import java.nio.channels.FileChannel;
- import java.nio.charset.Charset;
- import java.nio.charset.CharsetDecoder;
- import java.nio.charset.CharsetEncoder;
- public class TranslateCharset {
- static public void main(String args[]) throws Exception {
- String inFilename = ”inputFileName.txt”;
- String inFileCharsetName = ”InputFileCharSetName”;
- String outFilename = ”outputFileName.txt”;
- String outFileCharsetName = ”OutputFileCharSetName”;
- File infile = new File(inFilename);
- File outfile = new File(outFilename);
- RandomAccessFile inraf = new RandomAccessFile(infile, ”r”);
- RandomAccessFile outraf = new RandomAccessFile(outfile, ”rw”);
- FileChannel finc = inraf.getChannel();
- FileChannel foutc = outraf.getChannel();
- MappedByteBuffer inmbb =
- finc.map(FileChannel.MapMode.READ_ONLY, 0, (int) infile.length());
- Charset inCharset = Charset.forName(inFileCharsetName);
- Charset outCharset = Charset.forName(outFileCharsetName);
- CharsetDecoder inDecoder = inCharset.newDecoder();
- CharsetEncoder outEncoder = outCharset.newEncoder();
- CharBuffer cb = inDecoder.decode(inmbb);
- ByteBuffer outbb = outEncoder.encode(cb);
- foutc.write(outbb);
- inraf.close();
- outraf.close();
- }
- }
文本文件的编码转换是很常用的功能
