`
747017186
  • 浏览: 317472 次
社区版块
存档分类
最新评论

java之nio(3)

 
阅读更多

通道(Channel)


 channel边读边写

package nio;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;

public class ChannelTest {
	public static void main(String[] args) throws Exception{
		ByteBuffer buffer = ByteBuffer.allocate(10);//开辟10个缓冲区
		
		//读文件
		FileInputStream in = new FileInputStream("F:\\1.txt");
		FileChannel inChannel = in.getChannel();
		
		//写文件
		FileOutputStream out = new FileOutputStream("F:\\2.txt");
		FileChannel outChannel = out.getChannel();
		
		String str = "12345";//初始化信息
		buffer.put(str.getBytes());//把初始化信息放入缓冲区
		int temp = 0;
		while((temp=inChannel.read(buffer))!=-1) {//如果还有多余的缓冲区则继续读取直到缓冲区满
			buffer.flip();//每次缓冲区重置(通过改变position=0),必须把内容展示出来
			outChannel.write(buffer);//写入通道
			buffer.clear();//每次必须清空缓冲区,否则while循环每次 read读取的时候的缓冲区已满,read不会再读取新内容,陷入死循环
		}
		inChannel.close();
		in.close();
		outChannel.close();
		out.close();
	}
	
	private static void printInfo(ByteBuffer buffer) {
		while(buffer.hasRemaining()) {
			System.out.print((char)buffer.get()+"、");
		}
		System.out.println();
	}
}

MappedByteBuffer(内存映射流)




 代码:

package nio;

import java.io.FileInputStream;
import java.nio.ByteBuffer;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;

public class MappedByteBufferTest {
	public static void main(String[] args) throws Exception{
		//读文件
		FileInputStream in = new FileInputStream("F:\\1.txt");
		FileChannel inChannel = in.getChannel();
		
		//开辟内存通道,只读模式,大小为文件大小,MappedByteBuffer只为MapMode.READ_ONLY,如果要操作写模式太危险
		MappedByteBuffer mappedByteBuffer = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, in.available());
		printInfo(mappedByteBuffer);
		
		inChannel.close();
		in.close();
	}
	
	private static void printInfo(ByteBuffer buffer) {
		while(buffer.hasRemaining()) {
			System.out.print((char)buffer.get()+"、");
		}
		System.out.println();
	}
}

 

 

 

 

  • 大小: 156 KB
  • 大小: 79.9 KB
  • 大小: 47.4 KB
  • 大小: 72.7 KB
  • 大小: 54 KB
分享到:
评论

相关推荐

    java基于NIO实现Reactor模型源码.zip

    java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现Reactor模型源码java基于NIO实现...

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    JavaNIO chm帮助文档

    Java NIO系列教程(一) Java NIO 概述 Java NIO系列教程(二) Channel Java NIO系列教程(三) Buffer Java NIO系列教程(四) Scatter/Gather Java NIO系列教程(五) 通道之间的数据传输 Java NIO系列教程(六)...

    java nio 实现socket

    java nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socketjava nio 实现socket

    Java NIO 中文 Java NIO 中文 Java NIO 中文文档

    Java NIO 深入探讨了 1.4 版的 I/O 新特性,并告诉您如何使用这些特性来极大地提升您所写的 Java 代码的执行效率。这本小册子就程序员所面临的有代表性的 I/O 问题作了详尽阐述,并讲解了 如何才能充分利用新的 I/O ...

    Java NIO英文高清原版

    Java NIO英文高清原版

    Java IO NIO and NIO 2 无水印pdf

    Java IO NIO and NIO 2 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn...

    java_nio学习文档

    java_nio学习文档

    java nio 包读取超大数据文件

    Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据文件Java nio 超大数据文件 超大数据...

    java NIO 中文版

    讲解了 JavaIO 与 JAVA NIO区别,JAVA NIO设计理念,以及JDK中java NIO中语法的使用

    Pro Java 7 NIO2

    java nio2, Pro Java 7 NIO2

    java NIO 视频教程

    Java NIO(New IO)是一个可以替代标准Java IO API的IO API(从Java 1.4开始),Java NIO提供了与标准IO不同的IO工作方式。 Java NIO: Channels and Buffers(通道和缓冲区) 标准的IO基于字节流和字符流进行操作的,...

    Java NIO 中英文版 + Pro Java 7 NIO.2

    Java NIO,Ron Hitchens 著,中文版 裴小星 译,Pro Java 7 NIO.2,Anghel Leonard 著,pdf文字版带书签,无安全限制

    Java+NIO java nio

    Java+NIO

    java NIO.zip

    java NIO.zip

    java NIO详细教程

    java NIO详细教程,包括使用背景,实现原理,代码实现

    Java IO NIO and NIO 2 epub

    Java IO NIO and NIO 2 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除

    Java_NIO类库Selector机制解析.doc

    Java_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.doc

    Java.NIO资源下载资源下载

    Java.NIO资源下载资源下载

    Java用NIO读取文件示范

    简单的用Java的NIO读取文件的程序,给大家参考。

Global site tag (gtag.js) - Google Analytics