- 浏览: 87416 次
- 性别:
- 来自: 西安
最新评论
-
xuhang1128:
good
Spring源码解析 BeanPostProcessor的实现 -
zhudaokun:
呵呵……好帖,收藏一下
Spring源码解析1 IOC容器的初始化
通道与缓冲器的探究
package com.dirlist; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.io.*; public class ChannelCopy { private static final int BSIZE=1024; public static void main(String[] args) throws IOException { if(args.length!=2){ System.out.println("arguments: sourcefile destfile"); System.exit(1); } FileChannel in=new FileInputStream(args[0]).getChannel(),out=new FileOutputStream(args[1]).getChannel(); ByteBuffer buff=ByteBuffer.allocate(BSIZE); //一旦调用read()来告知FileChannel向ByteBuffer存储字节,就必须调用缓冲器上的flip(),让它做好让别人读取字节的准备 while(in.read(buff)!=-1){ buff.flip(); out.write(buff); //如果打算使用缓冲器执行进一步的read()操作,我们必须调用clear()方法 buff.clear();//清除此缓冲区。将位置设置为零,限制设置为该容量,并且丢弃标记。 } } } package com.dirlist; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; import java.io.*; public class GetChannel { /** * 新I/O 通道与缓冲器 */ private static final int BSIZE=1024; public static void main(String[] args) throws IOException { //FileChannel用于读取、写入、映射和操作文件的通道。 FileChannel fc=new FileOutputStream("data.txt").getChannel(); //ByteBuffer字节缓冲区。wrap()将字节数组包装到缓冲区中。 //新的缓冲区将由给定的字节数组支持;也就是说,缓冲区修改将导致数组修改,反之亦然。新缓冲区的容量和界限将为 array.length,其位置将为零,其标记是不确定的。其底层实现数组将为给定数组,并且其数组偏移量将为零。 fc.write(ByteBuffer.wrap("Some text ".getBytes())); fc.close(); fc=new RandomAccessFile("data.txt","rw").getChannel(); //position()设置此通道的文件位置。 //将该位置设置为大于文件当前大小的值是合法的,但这不会更改文件的大小。稍后试图在这样的位置读取字节将立即返回已到达文件末尾的指示。稍后试图在这种位置写入字节将导致文件扩大,以容纳新的字节;在以前文件末尾和新写入字节之间的字节值是未指定的。 //size()返回此通道的文件的当前大小。 System.out.println(fc.size()); fc.position(fc.size()); fc.write(ByteBuffer.wrap("Some more ".getBytes())); fc.close(); fc=new FileInputStream("data.txt").getChannel(); // allocate(int capacity)分配一个新的字节缓冲区。 ByteBuffer buff=ByteBuffer.allocate(BSIZE); fc.read(buff); //flip()反转此缓冲区。首先对当前位置设置限制,然后将该位置设置为零。如果已定义了标记,则丢弃该标记。 buff.flip(); //hasRemaining()判断在当前位置和限制之间是否有任何元素。 while(buff.hasRemaining()){ System.out.print((char)buff.get()); } } }
package com.dirlist; import java.nio.channels.FileChannel; import java.io.*; public class TransferTo { /** * 如何将一个通道与另一个通道连接 * @throws IOException */ public static void main(String[] args) throws IOException { if(args.length!=2){ System.out.println("arguments : sourfile destfile"); System.exit(1); } FileChannel in=new FileInputStream(args[0]).getChannel(),out=new FileOutputStream(args[1]).getChannel(); in.transferTo(0, in.size(), out); //或者 out.transferFrom(in, 0, in.size()); } }
发表评论
-
MapReduce
2011-03-07 11:55 18631.什么是MapReduce? MapRedu ... -
java Web
2010-10-20 19:55 62response.sendRedirect(): Web服务 ... -
JDK动态代理
2010-10-05 14:12 2406注意在使用JDK提供的动态代理要求我们的目标对象必须实现接 ... -
java的反射机制
2010-10-05 11:16 1683反射:运行时类型 如果你不知道某个对象的确切类型,RTT ... -
如何判断两个类之间的差异
2010-08-16 09:35 1028代码实现 package net.mindview.util ... -
HashSet和散列码的研究
2010-08-10 19:13 1615散列表(Hash table,也叫 ... -
持有对象Arrays.asList异常解决办法
2010-08-08 17:50 1282添加一组元素 package com.day1; im ... -
java编程思想 IO13 源码 文件解压缩
2010-05-09 15:21 1604package com.io; import java.io ... -
java编程思想 IO12 源码 文件加锁
2010-05-09 12:37 1875package com.io; import java.io ... -
java编程思想 IO11 源码 内存映射访问与性能
2010-05-08 21:32 1875package com.io; import java. ... -
java编程思想 IO10 文件操作源码
2010-05-08 16:05 1242package com.dirlist; import ... -
java编程思想 IO9 文件操作源码
2010-05-06 22:00 1021缓冲器的详细应用: package com.dirlist; ... -
java编程思想 IO7 文件操作源码
2010-05-06 09:42 1394希望大家留言一起讨论 ... -
java编程思想 IO6 文件操作源码
2010-05-05 23:26 1667package com.dirlist; import ... -
java编程思想 IO5 文件操作源码
2010-05-05 11:24 1429package com.dirlist; import ... -
java编程思想 IO4源码
2010-05-03 17:24 835目录的检查及创建 package com.dirlist; ... -
java编程思想 IO3源码
2010-05-03 16:27 1215利用策略设计模式来进行目录的遍历和文件的过滤 package ... -
java编程思想 IO2源码
2010-05-03 15:32 1172package net.mindview.util; impo ... -
java静态内部类
2010-05-03 11:31 2063引用别人的博客 在一 ... -
java编程思想 IO1源码
2010-05-03 09:48 1336目录列表器与目录过滤器的运用 package com.dirl ...
相关推荐
《Java编程思想》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。这本书中的练习题是学习者提升技能的重要途径,而这个压缩包提供的就是这些练习题的解答,以源码的形式保存为.java文件。...
《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。中文文档的出现使得更多的中国开发者能够无障碍地理解这本权威...
《Java编程思想》是Java开发领域的一本经典著作,由美国著名程序员Bruce Eckel撰写,侯捷翻译的中文版在中文读者中广受欢迎。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的开发者来说,都...
"Java编程思想第四版源码"则包含了书中所有示例的完整代码,读者可以直接运行和调试,加深对理论知识的理解。 总的来说,这本书不仅讲解了Java的基本语法和高级特性,还涵盖了企业级开发中常用的技术,是学习和进阶...
《Java编程思想》是Bruce Eckel的经典之作,其第四版更是深受全球程序员喜爱。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和经验丰富的开发者来说都是极好的参考资料。书中通过大量的实例来讲解...
《Java编程思想笔记》是基于 Bruce Eckel 的经典著作 "Thinking in Java" 所做的学习总结,这本书深入浅出地介绍了Java语言的核心概念和技术。在本文中,我们将围绕Java编程的一些关键知识点进行深入探讨,包括但不...
8. **文件I/O操作**:为了保存用户的提醒数据,程序可能实现了文件读写功能,使用java.io或java.nio包中的类进行数据持久化。 9. **设计模式**:在实现提醒簿的某些功能时,可能会用到设计模式,如单例模式(用于...
【Java电子相册源码】是一个使用Java编程语言开发的项目,主要目的是实现一个功能丰富的电子相册应用。这个源码提供了对图片展示、管理、编辑等基本功能的支持,是学习和理解Java图形用户界面(GUI)编程以及文件...
Java API是Java编程语言的核心库,它包含了众多用于构建应用程序的基本类和接口。在Java 1.8.0版本中,这些API源码被封装在`src.zip`压缩包内,位于JDK安装目录下。这个压缩包为开发者提供了一个深入了解Java内部...
总结来说,"经典java实例源码"是一个宝贵的教育资源,它提供了一条从理论到实践的学习路径,帮助初学者通过实际操作来掌握Java编程。无论你是Java新手还是有经验的开发者,都可以从中受益,不断提升自己的编程技巧和...
1. **文件I/O操作**:Java的`java.io`包提供了对文件进行读写操作的基础API,如`File`类用于文件的创建、删除、重命名等操作,`InputStream`和`OutputStream`用于读写二进制数据,`Reader`和`Writer`用于读写文本...
《Java面向对象编程》是孙卫琴先生撰写的一本深入探讨Java编程的著作,尤其注重面向对象的思想和实践。这本书的配套PPT和源码,为读者提供了丰富的学习资源,帮助理解和掌握Java语言的核心概念。 PPT部分,通常包含...
源码是理解编程思想和实现机制的关键。通过分析和学习这些源代码,我们可以深入掌握Java编程的核心概念和最佳实践。以下是一些可能涵盖的知识点: 1. **基础语法**:源代码可能包括变量声明、数据类型、运算符、...
这部教程旨在帮助初学者快速掌握Java编程语言,同时也适合有一定基础的开发者进行巩固和提升。通过视频教学与配套的源码笔记,学习者可以全方位地理解Java的核心概念和技术。 Java是一种广泛应用于企业级应用、移动...
这个压缩包文件的核心内容是关于Java编程语言的实际应用和深入理解,旨在帮助读者巩固理论知识,提升实践能力。 在Java的世界里,源码是学习的最佳教材,因为它们揭示了程序背后的逻辑和实现细节。通过阅读和分析...
"140个Java源码实例"是一份珍贵的学习资源,它包含了多个实际编程场景下的代码示例,旨在帮助初学者更好地理解和掌握Java编程。 在学习这140个Java源码实例时,我们可以按照以下主要知识点进行分类和深入学习: 1....
源码是编程学习的重要组成部分,通过分析和研究源代码,学员可以深入理解编程思想、设计模式以及Java语言的特性和规范。 【描述】"JAVA达内上课源码JAVA达内上课源码JAVA达内上课源码" 重复的信息强调了这是关于...
书中附带的源码是理解理论知识的关键,通过阅读和运行这些源代码,读者可以直观地看到Java编程的实际效果,从而加深对编程概念的理解。源码包含各种设计模式的实现,这对于提高软件设计能力非常有帮助。 "Thinking ...
在Java中,API包含了丰富的类库,如集合框架、IO流、网络编程、多线程等,这些都是构建应用程序的基础。 深入学习框架源码,我们需要了解以下几个关键知识点: 1. **设计模式**:大部分框架都采用了多种设计模式,...