NIO 中文乱码自我解决的简单DEMO


import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.channels.FileChannel;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;

import org.apache.commons.lang.time.DurationFormatUtils;


public class NIOTest {
	
	public static final int SIZE = 102400;
	public static final String PATH = "D:\\test\\test.txt";
	
	public static void main(String args[]) {
		
		//方法一
		/*
		 try {//写数据
			FileChannel fileOutChannel = new FileOutputStream(PATH,true).getChannel();
			fileOutChannel.write(ByteBuffer.wrap("这是用FileOutpuStream调用NIO的Channel写出的内容".getBytes()));
			System.out.println("写出成功!");
			fileOutChannel.close();
			//读数据
			FileChannel fileInChannel = new FileInputStream(PATH).getChannel();
			ByteBuffer byteBuffer = ByteBuffer.allocate(SIZE);
			fileInChannel.read(byteBuffer);
			byteBuffer.flip();
			Charset charset = Charset.forName("UTF-8");
			while (byteBuffer.hasRemaining()) {
				CharsetDecoder charsetDecoder = charset.newDecoder();
				CharBuffer charBuffer = charsetDecoder.decode(byteBuffer);
				System.out.print(charBuffer);					
			}
			System.out.println();
			System.out.println("读入完成!");
			fileInChannel.close();
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		*/
		
		//方法二
		try {
			 RandomAccessFile randomAccessFile = new RandomAccessFile(PATH, "rw");
			//写数据
			randomAccessFile.writeUTF("这是用RandomAccessFile调用NIO的Channel写出的内容");
			System.out.println("写出成功!");
			//读数据
			randomAccessFile.seek(0);
			System.out.println(randomAccessFile.readUTF());
			System.out.println("读入成功!");
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO: handle exception
		}
		
	}
	
	
	

}

查看方法一运行效果:

posted @ 2018-05-04 17:05  星朝  阅读(595)  评论(0编辑  收藏  举报