当前位置:首页 > 开发 > 系统架构 > 架构 > 正文

java nio实例一

发表于: 2012-12-17   作者:blackproof   来源:转载   浏览次数:
摘要: java nio的实例   public class NewIOChannel { private String file = ""; private String file2 = ""; @Before public void init(){ file = NewIOChannel.class.getR

java nio的实例

 

public class NewIOChannel {
	
	private String file = "";
	private String file2 = "";
	
	@Before
	public void init(){
		file = NewIOChannel.class.getResource("").getPath()+"\\myfile.txt";
		file2 = NewIOChannel.class.getResource("").getPath()+"\\myfile2.txt";
		System.out.println(file);
	}
	
	/**
	 * outputStream channel写文件
	 * @throws IOException
	 */
	@Test
	public void FileTest() throws IOException{
		String info[] = {"wang","fwefwe","北京"};
		File file = new File(this.file);
		
		FileOutputStream output = null;
		output = new FileOutputStream(file);
		FileChannel fout = null;
		fout = output.getChannel();
		ByteBuffer buf = ByteBuffer.allocate(1024);
		for (int i = 0; i < info.length; i++) {
			buf.put(info[i].getBytes("UTF-8"));
		}
		buf.flip();
		fout.write(buf);
		fout.close();
		output.close();
	}
	
	@Test
	public void writeFile()throws IOException{
		File file = new File(this.file);
		FileInputStream input = new FileInputStream(file);
		FileChannel fileChannel = input.getChannel();
		byte data[] = new byte[(int)file.length()];
//		MappedByteBuffer mbb = fileChannel.map(FileChannel.MapMode.READ_ONLY, 0, file.length());
//		int foot = 0;
//		while(mbb.hasRemaining())
//			data[foot++] = mbb.get();
		ByteBuffer bufs = ByteBuffer.wrap(data);
		fileChannel.read(bufs);
		System.out.println(new String(data));
		fileChannel.close();
	}
	
	@Test
	public void writereadFile() throws IOException{
		File file = new File(this.file);
		File file2 = new File(this.file2);
		FileInputStream input = new FileInputStream(file);
		FileOutputStream output = new FileOutputStream(file2);
		
		FileChannel fout = output.getChannel();
		FileChannel fin = input.getChannel();
		ByteBuffer buf = ByteBuffer.allocate(1024);
		int temp =0;
		while ((temp = fin.read(buf)) != -1) {
			buf.flip();
			fout.write(buf);
			buf.clear();
		}
		fin.close();
		fout.close();
	}
	
	@Test
	public void FileLockDemo() throws IOException, InterruptedException{
		File file = new File(this.file);
		FileOutputStream output = new FileOutputStream(file,true);
		FileChannel fout = output.getChannel();
		FileLock lock = fout.tryLock();
		if(lock != null){
			System.out.println(file.getName()+"文件被锁定5秒");
			Thread.sleep(5000);
			lock.release();
			System.out.println(file.getName()+"文件被解锁");
		}
		fout.close();
		output.close();
	}
}
 

java nio实例一

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多
Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多
Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多
Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多
Java NIO 由以下几个核心部分组成: Channels Buffers Selectors 虽然Java NIO 中除此之外还有很多
使用SocketChannel的NIO客户机服务器通信示例。(转) NIO Selector示意图: 客户端代码: import j
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括
转载自:李会军•宁静致远 最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO
最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前
最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号