1, FileChannel 虚拟类,不可以直接实例化,可以通过FileInputStream  FileOutputStream 获取

例:文件的复制

public class ChannelDemo {
public static void main(String[] args) throws Exception { FileInputStream fis = new FileInputStream("C:/Users/caich5/Desktop/qms-mes.txt"); FileOutputStream fos = new FileOutputStream("C:/Users/caich5/Desktop/outchannel11.txt"); FileChannel inchannel = fis.getChannel(); FileChannel outchannel = fos.getChannel(); int capacity = ; ByteBuffer buf = ByteBuffer.allocate(capacity); while(inchannel.read(buf) != -){ buf.flip(); outchannel.write(buf); buf.clear(); }
} }

2,另一种写法,不用FileInputStream 和 FileOutputStream 获取channel,写法如下:

        ByteBuffer buf = ByteBuffer.allocate(1000);

        Path inpath = Paths.get(System.getProperty("user.dir")+"/stack");

        Path outpath = Paths.get(System.getProperty("user.dir")+"/outstack");//必须在指定位置新建此文件(文件不存在,FileOutputStream可以新建,用路径的写法不可以)

        FileChannel inchannel = FileChannel.open(inpath, StandardOpenOption.READ);

        while(inchannel.read(buf)!= -1){

            buf.flip();

            FileChannel outchannel = FileChannel.open(outpath, StandardOpenOption.WRITE);

            outchannel.write(buf);

            buf.clear();

        }

3, System.getProperty("属性名")方法的使用
   java.version
  Java 运行时环境版本
  java.vendor
  Java 运行时环境供应商
  java.vendor.url
  Java 供应商的 URL
  java.home
  Java 安装目录
  java.vm.specification.version
  Java 虚拟机规范版本
  java.vm.specification.vendor
  Java 虚拟机规范供应商
  java.vm.specification.name
  Java 虚拟机规范名称
  java.vm.version
  Java 虚拟机实现版本
  java.vm.vendor
  Java 虚拟机实现供应商
  java.vm.name
  Java 虚拟机实现名称
  java.specification.version
  Java 运行时环境规范版本
  java.specification.vendor
  Java 运行时环境规范供应商
  java.specification.name
  Java 运行时环境规范名称
  java.class.version
  Java 类格式版本号
  java.class.path
  Java 类路径
  java.library.path
  加载库时搜索的路径列表
  java.io.tmpdir
  默认的临时文件路径
  java.compiler
  要使用的 JIT 编译器的名称
  java.ext.dirs
  一个或多个扩展目录的路径
  os.name
  操作系统的名称
  os.arch
  操作系统的架构
  os.version
  操作系统的版本
  file.separator
  文件分隔符(在 UNIX 系统中是“/”)
  path.separator
  路径分隔符(在 UNIX 系统中是“:”)
  line.separator
  行分隔符(在 UNIX 系统中是“/n”)
  user.name
  用户的账户名称
  user.home
  用户的主目录
  user.dir
  用户的当前工作目录

FileChannel的更多相关文章

  1. JAVA NIO FileChannel 内存映射文件

      文件通道总是阻塞式的. 文件通道不能创建,只能通过(RandomAccessFile.FileInputStream.FileOutputStream)getChannel()获得,具有与File ...

  2. JAVA NIO——Buffer和FileChannel

    Java NIO和IO的主要区别 IO NIO 面向流 面向缓冲 阻塞IO 非阻塞IO 无 选择器 示例: import java.io.FileInputStream; import java.io ...

  3. java filechannel大文件的读写

    java读取大文件 超大文件的几种方法 转自:http://wgslucky.blog.163.com/blog/static/97562532201332324639689/   java 读取一个 ...

  4. SeekableByteChannel 和 FileChannel

    Java7中引入了SeekableByteChannel接口,允许我们定位到文件的任意位置进行读写.注意这里的写,不是新增式的插入,而是覆盖,当然在文件末尾的写,是新增. java.nio.chann ...

  5. java的nio之:java的nio系列教程之FileChannel

    一:Java NIO的FileChannel===>Java NIO中的FileChannel是一个连接到文件的通道.可以通过文件通道读写文件. ===>FileChannel无法设置为非 ...

  6. Java基础知识强化之IO流笔记78:NIO之 FileChannel

    Java NIO中的FileChannel是一个连接到文件的通道.可以通过文件通道读写文件. FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下. 1. 打开FileChannel 在 ...

  7. java中的拷贝文件FileChannel

    以前用Java拷贝文件,只知道写byte数组循环拷贝,今天知道了可以用FileChannel进行拷贝,上代码: 下边是传统的byte数组拷贝方法 </pre><pre name=&q ...

  8. Flume FileChannel优化(扩展)实践指南

    本文系微博运维数据平台(DIP)在Flume方面的优化扩展经验总结,在使用Flume FileChannel的场景下将吞吐率由10M/s~20M/s提升至80M/s~90M/s,分为四个部分进行介绍: ...

  9. BufferedInputStream,FileInputStream,FileChannel实现文件拷贝

    从上篇文章中知道BufferedInputStream是自带缓冲区的输入流,可以大大减少IO次数,提供效率.下面的例子中实现了用BufferedInputStream与FileInputStream实 ...

  10. Java NIO read/write file through FileChannel

    referee:  Java NIO FileChannel A java nio FileChannel is an channel that is connected to a file. Usi ...

随机推荐

  1. ios中输入法把 内容顶起后 内容下不来问题

    之前是做一个日期选择的功能,引入了一个选择日期的插件,当input框获得焦点时,弹出日期选择框,但是,输入法页弹出来了,把选择日期的插件顶的老高了,很丑,于是我在网上查了个方法不让输入法弹出来,就是在 ...

  2. vue脚手架用axios请求本地数据

    首先需要声明的是:本地请求,不用考虑跨域问题,这适用刚入坑的前端小白看,小白在做自己的项目时,通常都是用自己写的json数据,之后用axios请求过来,渲染到页面上. 1.cnpm install a ...

  3. Java设计模式之模板模式及使用场景

    模板模式,顾名思义,就是通过模板拓印的方式. 定义模板,就是定义框架.结构.原型.定义一个我们共同遵守的约定. 定义了模板,我们的剩余工作就是对其进行充实.丰润,完善它的不足之处. 定义模板采用抽象类 ...

  4. Hibernate的一个小应用

    hibernate 第一步,导入hiberante需要用到的jar包,因为使用hibernate时候,有日志信息输出,hibernate本身没有日志输出的jar包,导入其他日志的jar包 不要忘记还有 ...

  5. 一个ajax请求,接收json数据

    <a id="inviterDel" onclick="delInviter(${item.inviterAddId})">删除</a> ...

  6. 005-docker-镜像使用、拉取、运行、创建、打tag

    当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 1.列出所有本地镜像 docker images ...

  7. javascript 及 vue 中的变量前面的美元符号 $ 是什么意思

    $ 您会注意到,我们将库代理为以美元符号“$”为前缀的属性名. 你可能还看过其他的属性和方法,例如,$refs, $on, $mount等等也都是以”$”开头. 虽然属性名上添加前缀不是必须的,但是这 ...

  8. throws和throw的区别

    throws是声明在方法上,告诉调用者这个方法可能会出现的问题.格式  :   方法()   throws  自定义异常类(异常类)    就是在这个方法里面会出问题时,new  throw时,    ...

  9. Linux命令:tar命令批量解压方法总结

    tar命令批量解压方法总结 (2010-05-24 17:48:46) 转载▼ 标签: tar 批量解压 杂谈 分类: linux学习 由于linux的tar命令不支持批量解压,所以很多网友编写了好多 ...

  10. CentOS 查看系统 CPU 个数、核心数、线程数

    1.查看 CPU 物理个数 grep 'physical id' /proc/cpuinfo | sort -u | wc -l 2.查看 CPU 核心数量 grep 'core id' /proc/ ...