读取一个文件的内容,然后写入另外一个文件

public class NioTest4 {

    public static void main(String[] args) throws  Exception {
FileInputStream inputStream = new FileInputStream("input.txt"); FileOutputStream outputStream = new FileOutputStream("output.txt"); FileChannel inputChannel = inputStream.getChannel();
FileChannel outputChannel = outputStream.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(1024);
while (true){
buffer.clear();
int read = inputChannel.read(buffer);
if( -1 == read){
break;
}
buffer.flip(); outputChannel.write(buffer); }
inputChannel.close();
outputChannel.close(); } }

  通过NIO读取文件涉及3个步骤

1、从FileInputStream获取FileChannel对象

2、创建Buffer

3、将数据从Channel读取到Buffer中

  绝对方法与相对方法的含义

1、相对方法: limit值与position值会在操作时被考虑到

2、绝对方法: 完全忽略调limit值和position值。

Java NIO 文件通道使用的更多相关文章

  1. Java NIO 文件通道 FileChannel 用法

    FileChannel 提供了一种通过通道来访问文件的方式,它可以通过带参数 position(int) 方法定位到文件的任意位置开始进行操作,还能够将文件映射到直接内存,提高大文件的访问效率.本文将 ...

  2. Java IO和Java NIO 和通道 在文件拷贝上的性能差异分析

    1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区 ...

  3. Java NIO Channel通道

    原文链接:http://tutorials.jenkov.com/java-nio/channels.html Java NIO Channel通道和流非常相似,主要有以下几点区别: 通道可以读也可以 ...

  4. Java NIO之通道

    一.前言 前面学习了缓冲区的相关知识点,接下来学习通道. 二.通道 2.1 层次结构图 对于通道的类层次结构如下图所示. 其中,Channel是所有类的父类,其定义了通道的基本操作.从 Channel ...

  5. 【NIO】Java NIO之通道

    一.前言 前面学习了缓冲区的相关知识点,接下来学习通道. 二.通道 2.1 层次结构图 对于通道的类层次结构如下图所示. 其中,Channel是所有类的父类,其定义了通道的基本操作.从 Channel ...

  6. JAVA NIO 文件部分

    NIO java使用NIO的目的是为了提升性能,实际上老的io程序也已经优化过了,速度也有相应的提升. NIO主要有三大核心部分:Channel(通道),Buffer(缓冲区), Selector.传 ...

  7. Java使用文件通道复制文件

    两种文件通道复制文件方式的性能比较 import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IO ...

  8. Java NIO:通道

    最近打算把Java网络编程相关的知识深入一下(IO.NIO.Socket编程.Netty) Java NIO主要需要理解缓冲区.通道.选择器三个核心概念,作为对Java I/O的补充, 以提升大批量数 ...

  9. JAVA NIO Socket通道

      DatagramChannel和SocketChannel都实现定义读写功能,ServerSocketChannel不实现,只负责监听传入的连接,并建立新的SocketChannel,本身不传输数 ...

随机推荐

  1. Java 基本类型包装类Wrapper

    一.包装类概述 1.为什么需要包装类 Java并不是纯面向对象的语言.Java语言是一个面向对象的语言,但是Java中的基本数据类型却是不面向对象的.基本数据类型有它的优势:性能(效率高,节省空间). ...

  2. Log4j配置详述

    /** * log4j基础配置步骤阐述: * 1.引入log4j相关的jar包文件. * 2.创建log4j的配置文件.      * 3.测试配置是否成功. */ Log4j 根配置语法 下面引入一 ...

  3. win10 + Ubuntu18.04 双系统,UEFI+GPT,从win10切换到Ubuntu时黑屏问题

    1.现象: ①win10主系统,从win10重启,立即黑屏,之后会进入Ubuntu(还是黑屏)(为什么会知道进入了Ubuntu:按音量键可以听到Ubuntu音量加减的系统声音,数字锁定和大小写锁定均有 ...

  4. MGR基本使用(转)

    第一章:MGR介绍 MGR(MySQL Group Replication)是一个MySQL Server插件,可用于创建弹性,高可用MySQL集群方案.有一个内置的组成员服务,在任何给定的时间点,保 ...

  5. Redis的入门

    什么是NOSQL? NOSQL(Not Only SQL)不仅仅是数据库,是一种全新的理念,泛指非关系型的数据库. 为什么需要NOSQL? 随着互联网的高速崛起,网站的用户群的增加,访问量的上升,传统 ...

  6. shell 编程生成日期文件;Server虚拟机上进行Web服务器配置

    shell 编程生成日期文件 1. 请编写一个脚本,命名为sh01.sh,其功能是: 键盘输入文件名(要求使用名字全拼作为文件名). 自动创建3个文件. 1个为系统当天日期(CCYYMMDD). 1个 ...

  7. sleep、yield、wait、join的区别(阿里)

    只有runnable到running时才会占用cpu时间片,其他都会出让cpu时间片.线程的资源有不少,但应该包含CPU资源和锁资源这两类.sleep(long mills):让出CPU资源,但是不会 ...

  8. iOS GPU、cpu、显示器的协作

    在 iOS 系统中,图像内容展示到屏幕的过程需要 CPU 和 GPU 共同参与. CPU 负责计算显示内容,比如视图的创建.布局计算.图片解码.文本绘制等. 随后 CPU 会将计算好的内容提交到 GP ...

  9. 2018南京区域赛G题 Pyramid——找规律&&递推

    先手动推出前10项,再上BM板子求出递推式 $A_n = 5A_{n-1} - 10A_{n-2} + 10A_{n-3} - 5A_{n-4} + A_{n-5}$,根据特征根理论可求出特征方程 $ ...

  10. 【城市天气】使用Ajax发送和接受数据

    任务:利用中国天气网的公开接口,实现天气预报的查询功能 实验的功能要求如下: (1)当网页加载时,根据所给的 json 数据解析获得省(直辖市)的信息并显示在下拉列表框中供用户选择: (2)当用户选择 ...