zoukankan      html  css  js  c++  java
  • 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
    		}
    		
    	}
    	
    	
    	
    
    }
    
    

    查看方法一运行效果:

  • 相关阅读:
    R.java文件介绍
    Windows CE Notification API的使用方法
    Vue.js组件的重要选项
    Vue.js如何划分组件
    细数那些年我用过的前端开发工具
    前端几个常用简单的开发手册拿走不谢
    Bootstrap相关优质项目学习清单
    前端页面实现报警器提示音效果
    人工智能面试题86问,新手找工作必备!
    人工智能面试题86问,新手找工作必备!
  • 原文地址:https://www.cnblogs.com/jpfss/p/8991551.html
Copyright © 2011-2022 走看看