1、NioTest13_In.txt文件内容拷贝到NioTest13_Out.txt文件中
public class NioTest13 {
public static void main(String[] args) throws Exception {
String inputFile = "NioTest13_In.txt";
String outFile = "NioTest13_Out.txt";
RandomAccessFile inputRandomAccessFile = new RandomAccessFile(inputFile,"r");
RandomAccessFile outputRandomAccessFile = new RandomAccessFile(outFile,"rw");
long inputLength = new File(inputFile).length();
FileChannel inputFileChannel = inputRandomAccessFile.getChannel();
FileChannel outputFileChannel = outputRandomAccessFile.getChannel();
MappedByteBuffer inputData = inputFileChannel.map(FileChannel.MapMode.READ_ONLY, 0, inputLength);
System.out.println("================================");
/*Charset.availableCharsets().forEach( (k,v) -> {
System.out.println(k + ", " + v);
});*/
System.out.println("================================");
Charset charset = Charset.forName("iso-8859-1"); //utf-8
CharsetDecoder decoder = charset.newDecoder(); //字节数组转字符串
CharsetEncoder encoder = charset.newEncoder(); //字符串转字符数组
CharBuffer charBuffer = decoder.decode(inputData);
ByteBuffer outputData = encoder.encode(charBuffer);
outputFileChannel.write(outputData);
inputRandomAccessFile.close();
outputRandomAccessFile.close();
}
}
2、创建"NioTest13_In.txt文件
3、执行后生成了NioTest13_Out.txt 文件
可以知道使用: Charset charset = Charset.forName("iso-8859-1"); //utf-8
使用iso-8859-1和utf-8,中文显示都是正常的