package com.ls.java.newio;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class CopyFile {
public static void main(String[] args) {
String infile = "/home/astute/comm/01_select.sql";
String outfile = "/home/astute/comm/copy_to_new.sql";
try {
// 获取源文件和目标文件的输入输出流
FileInputStream is = new FileInputStream(infile);
FileOutputStream os = new FileOutputStream(outfile);
// 获取输入输出通道
FileChannel fcin = is.getChannel();
FileChannel fcout = os.getChannel();
// 创建缓冲区
ByteBuffer buffer = ByteBuffer.allocate(1024);
while(true) {
// clear方法重设缓冲区,使它可以接受读入的数据
buffer.clear();
// 从输入通道中将数据读到缓冲区
int r = fcin.read(buffer);
// read方法返回读取的字节数,可能为零,如果该通道已到达流的末尾,则返回-1
if(r == -1)
break;
// flip方法让缓冲区可以将新读入的数据写入另一个通道
// 写模式转换成读模式
buffer.flip();
// 从输出通道中将数据写入缓冲区
fcout.write(buffer);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Buffer
常见方法:
flip():
写模式转换成读模式
rewind()
:将
position
重置为
0
,一般用于重复读。
clear()
:清空
buffer
,准备再次被写入
(position
变成
0
,
limit
变成
capacity)
。
compact():
将未读取的数据拷贝到
buffer
的头部位。
mark()
、
reset():mark
可以标记一个位置,
reset
可以重置到该位置。
Buffer
常见类型:
ByteBuffer
、
MappedByteBuffer
、
CharBuffer
、
DoubleBuffer
、
FloatBuffer
、
IntBuffer
、
LongBuffer
、
ShortBuffer
。
分享到:
相关推荐
java nio 入门,来自于IBM中文站
java nio入门学习,两个pdfjava nio入门学习,两个pdf
这是用于JAVA NIO入门教程的源码,直接看也能学到不少哦
java NIO入门适合入门j
javaNIO入门(良好排版格式).pdf
java nio入门知识 java nio详细介绍总结
该资源为Java nio入门的部分简单示例代码,目的是用简单的示例程序,说明nio中的知识点,希望对你的学习有所帮助
NIO入门.chm NIO入门.chm NIO入门.chm
java侧起server(NioUdpServer1.java),基于Java Nio的selector 阻塞等候,一个android app(NioUdpClient1文件夹)和一个java程序(UI.java)作为两个client分别向该server发数据,server收到后分别打印收到的消息...
java NIO 入门,看了就会开发,java菜鸟们,走起!
IBM Java文档库 NIO 入门
[第4节] JavaNIO流-通道1.flv [第5节] Java NIO流-通道2.flv [第6节] Java NIO流-socket通道操作.flv [第7节] Java NIO流-文件通道操作.flv [第8节] Java NIO流-选择器 .flv [第9节] Java NIO流-选择器操作.flv...
可以作为NIO socket入门的例子,Reactor模式,重点理解key.attach, jar文件里包含了源代码 1,运行server.bat启动服务器,可以打开编辑,修改端口号 2,运行client.bat启动客户端,可以打开编辑,ip,和端口号 3...
Java NIO的总结, 对于新人入门理解很好, 使用Markdown编写
回味Java基础之NIO!!!
内容不仅包含Java NIO入门知识、Netty 的基础功能开发指导、编解码框架定制等,还包括私有协议栈定制和开发、Netty 核心类库源码分析,以及Netty 的架构剖析。 《Netty 权威指南(第2 版)》适合架构师、设计师、...
NULL 博文链接:https://janeky.iteye.com/blog/956125