ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JavaNIO-文件锁与文件的编码解码

2021-12-30 00:02:05  阅读:198  来源: 互联网

标签:文件 outputStream JavaNIO buffer 解码 获取 File public


public class NIODemo {
//TODO 文件锁定时数据需提前备份
    public static void main(String[] args) throws Exception {
        File file = new File("F:"+ File.separator+"vm_realpath"+File.separator+"vm.log");
        FileOutputStream outputStream = new FileOutputStream(file);
        FileChannel channel = outputStream.getChannel();//获取文件输入的Channel
        FileLock fileLock = channel.tryLock();//尝试获取文件锁
        if(fileLock != null){//已经获取了文件锁
            System.out.println("已经获取了文件锁,当前文件被锁定");
            TimeUnit.SECONDS.sleep(10);//锁10秒
            fileLock.release();//解锁
        }
        channel.close();
        outputStream.close();
    }
}

字符集

public class NIODemo {
    public static void main(String[] args) throws Exception {
        SortedMap<String,Charset> map  = Charset.availableCharsets() ;
        for(Map.Entry<String,Charset> entry:map.entrySet()){
            //查看支持的编码
            System.out.println(entry.getKey() + "-"+entry.getValue());
        }
    }
}

编码与解码

public class NIODemo {
    public static void main(String[] args) throws Exception {
        Charset charset = Charset.forName("UTF-8") ;//创建一个“UTF-s"的编码器
        CharsetEncoder encoder= charset.newEncoder() ; //获取编码器
        CharsetDecoder decoder= charset.newDecoder() ; //获取解码器
        CharBuffer buffer = CharBuffer.allocate(20);//分配空间数据
        buffer.put("万邦皆下品,惟有读书高");
        buffer.flip();//重置缓冲区
        ByteBuffer encodeBuffer = encoder.encode(buffer) ;//对缓冲区中的数据进行编码
        System.out.println(decoder.decode(encodeBuffer));
    }
}

标签:文件,outputStream,JavaNIO,buffer,解码,获取,File,public
来源: https://blog.csdn.net/weixin_46071647/article/details/122226835

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有