FileChannel类的简单用法
来源:互联网 发布:龙阳路枢纽路网优化 编辑:程序博客网 时间:2024/06/16 11:29
清单一:
- import java.io.*;
- import java.nio.*;
- import java.nio.channels.*;
- public class GetChannel
- {
- private static final int BSIZE = 1024;
- public static void main(String[] args)throws IOException
- {
- FileChannel fc = new FileOutputStream ("data.txt").getChannel();
- fc.write(ByteBuffer.wrap("some txt".getBytes()));//write() Writes a sequence of bytes to
- //this channel from the given buffer
- fc.close();
- fc = new RandomAccessFile("data.txt","rw").getChannel();
- fc.position(fc.size());//abstract FileChannel position(long newPosition)
- //Sets this channel's file position.
- fc.write(ByteBuffer.wrap("some more".getBytes()));
- fc.close();
- fc =new FileInputStream("data.txt").getChannel();
- ByteBuffer bf = ByteBuffer.allocate(BSIZE);//static ByteBuffer allocate(int capacity)
- //Allocates a new byte buffer.
- //一旦调用read()来告知FileChannel向ByteBuffer存储字节,就必须调用缓冲器上的filp(),
- //让它做好别人存储字节的准备(是的,他是有点拙劣,但请记住他是很拙劣的,但却适于获取大速度)
- //
- fc.read(bf);// Reads a sequence of bytes from this channel into the given buffer
- bf.flip();
- while(bf.hasRemaining())
- System.out.print((char)bf.get());
- }
- }
清单二:
- //Copying a file using channels and buffers;
- import java.io.*;
- import java.nio.*;
- import java.nio.channels.*;
- public class ChannelCopy
- {
- private static final int BSIZE = 1024;
- public static void main(String [] args)throws IOException
- {
- if (args.length!=2)
- {
- System.out.println("argument:sourcefile destfile");
- System.exit(1);
- }
- FileChannel
- in = new FileInputStream (args[0]).getChannel(),
- out = new FileOutputStream (args[1]).getChannel();
- ByteBuffer bb = ByteBuffer.allocate(BSIZE);
- while (in.read(bb)!=-1)
- {
- bb.flip();
- out.write(bb);
- bb.clear();//prepare for reading;清空缓冲区;
- }
- }
- }
清单三
- import java.io.*;
- import java.nio.*;
- import java.nio.channels.*;
- public class TransferTo
- {
- public static void main(String [] args) throws IOException
- {
- if(args.length!=2)
- {
- System.out.println("argument: sourcefile destfile");
- System.exit(1);
- }
- FileChannel
- in = new FileInputStream(args[0]).getChannel(),
- out = new FileOutputStream(args[1]).getChannel();
- //abstract long transferTo(long position, long count, WritableByteChannel target)
- // Transfers bytes from this channel's file to the given writable byte channel.
- in.transferTo(0,in.size(),out);
- //or
- //using out
- //abstract long transferFrom(ReadableByteChannel src, long position, long count)
- // Transfers bytes into this channel's file from the given readable byte channel.
- // out.transferFrom(in,0,in.size());
- }
- }
- FileChannel类的简单用法
- FileChannel的用法
- FileChannel实现的简单断点复制
- FileChannel类的理解和使用(java.nio.channels.FileChannel)
- FileChannel的深入理解
- java的FileChannel使用方法。
- FileChannel
- FileChannel
- FileChannel
- FileChannel
- Java之FileChannel类的理解和使用
- Java之FileChannel类的理解和使用
- Java 复制大文件方式FileChannel 用法
- 合并文件的FileChannel方式
- Java的NIO之FileChannel
- BigDecimal类的简单用法
- CxImage类的简单用法
- BigDecimal类的简单用法
- on_command 和 on_message的区别
- jxl 读取Excel图片
- WIMAX与WIFI
- tomcat 6与5jar包冲突出错
- 屏幕编程
- FileChannel类的简单用法
- 字符串转日期时间类型
- C# aspx页面动态加载ascx用户控件
- 学习axis出现的问题。。
- 关于非模态对话框的销毁
- 自我++工作++ ——《给CSDN初学者的一些建议》读后感
- Ajax中使用Response.Write输出javascript脚本出错的解决办法
- Inside the c++ object model - Copy Constructor Construction
- SIP交流PPT