十二

作者: BeYearn | 来源:发表于2018-11-22 20:20 被阅读0次
  1. 文件copy两种方式
    利用 java.io 类库,直接为源文件构建一个 FileInputStream 读取,然后再为目标文件构建一个 FileOutputStream,完成写入工作。
public static void copyFileByStream(File source, File dest) throws
        IOException {
    try (InputStream is = new FileInputStream(source);
         OutputStream os = new FileOutputStream(dest);){
        byte[] buffer = new byte[1024];
        int length;
        while ((length = is.read(buffer)) > 0) {
            os.write(buffer, 0, length);
        }
    }
 }

利用 java.nio 类库提供的 transferTo 或 transferFrom 方法实现。会使用到零拷贝技术,数据传输并不需要用户态参与,省去了上下文切换的开销和不必要的内存拷贝,进而可能提高应用拷贝性能。注意,transferTo 不仅仅是可以用在文件拷贝中,与其类似的,例如读取磁盘文件,然后进行 Socket 发送,同样可以享受这种机制带来的性能和扩展性提高。

public static void copyFileByChannel(File source, File dest) throws IOException {
    try (FileChannel sourceChannel = new FileInputStream(source).getChannel();
         FileChannel targetChannel = new FileOutputStream(dest).getChannel();){
        for (long count = sourceChannel.size() ;count>0 ;) {
            long transferred = sourceChannel.transferTo(
                    sourceChannel.position(), count, targetChannel);                      sourceChannel.position(sourceChannel.position() + transferred);
            count -= transferred;
        }
    }
 }
  1. 理解用户态空间(User Space)和内核态空间(Kernel Space),这是操作系统层面的基本概念,操作系统内核、硬件驱动等运行在内核态空间,具有相对高的特权;而用户态空间,则是给普通应用和服务使用
图片.png 图片.png

相关文章

  • 十二

    朋友十二画,恋人十二画,爱人十二画,家人十二画,所以十二叫难忘

  • 十二的名字叫难忘

    爱人十二画, 朋友十二画, 家人十二画, 妈妈十二画, 故乡十二画, 十二的名字叫难忘❤️ 晚安

  • 十二

    朋友十二画, 恋人十二画, 爱人十二画, 家人十二画..... 我的名字也是十二呀…… 十二 是难忘啊!

  • 我给你备注十二

    我给你的备注是十二,朋友十二画,恋人十二画,爱人十二画,家人十二画。舍友也是十二,所以,十二的名字,叫做难忘。 当...

  • 2018-04-06

    朋友十二画 恋人十二画 爱人十二画 家人十二画 十二的名字 叫难忘

  • 关于十二

    今天唱了一首十二。全民K歌 十二 - 朋友十二画 恋人十二画 爱人十二画 家人十二画 十二是四季的写照 十二是一生...

  • 十二

    “十二,我们一起回家吧!” “我有名字!” “就是要叫你十二!十二!十二!十二!” “十二,晚上看电影去吧?” “...

  • 男左女右 第五章 亲密关系“缘”于吸引

    网易云热情十二所说:我给你的备注是十二,朋友十二画,恋人十二画,爱人十二画,家人十二画。所以,十二的名字,叫做难忘...

  • 难忘

    朋友十二画,恋人十二画,爱人十二画,家人十二画。所以十二的名字,叫做难忘。 ...

  • ,只有该结婚的感情,没有该结婚的年龄,更没有婚前的中年危机。

    我给你的备注是十二,朋友十二画,恋人十二画,爱人十二画,家人十二画。所以,十二的名字,叫做难忘。

网友评论

      本文标题:十二

      本文链接:https://www.haomeiwen.com/subject/hzulqqtx.html