• 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
    		}
    		
    	}
    	
    	
    	
    
    }
    
    

    查看方法一运行效果:

  • 相关阅读:
    屠呦呦团队研究新进展:青蒿中有其他抗疟成分
    lammps模拟化学反应(1)
    伪类的使用--鼠标悬浮效果
    bootstrap中模态框的使用
    idea_2018.1.5版本的激活使用
    火狐浏览器开发者版本
    使用bootstrap的相关配置
    StringBuffer类
    如何判断字符串中大写字母,小写字母和数字出现的次数??
    ssm框架结构的搭建
  • 原文地址:https://www.cnblogs.com/jpfss/p/8991551.html
Copyright © 2020-2023  润新知