JAVA NIO 新IO 分析 理解 深入 实例,如何利用JAVA NIO提升IO性能
2013-05-03 19:56
1071 查看
在NIO中和BUFFER配合使用的有CHANNEL,channel是一个双向通道,既可读也可写,有点类似stream,但stream是单向的,应用程序不直接对channel进行读写操作,而必须通过buffer来进行。比如,在读一个channel的时候,需要先将数据读入到相对应的buffer,然后在buffer中进行读取。
一个使用filechannel的例子
一个使用bufferedreader,bufferedwriter的例子
一个使用filechannel的例子
package nio; import java.io.*; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; public class ReadDemo { public static void main(String[] args) throws Exception { long begin = System.currentTimeMillis(); File file = new File("a.txt"); System.out.println(file.length()); File file2 = new File("demo.txt"); FileInputStream fin = new FileInputStream(file); //要从文件channel中读取数据,必须使用buffer FileChannel fc = fin.getChannel(); ByteBuffer bb = ByteBuffer.allocate(430528); fc.read(bb); fc.close(); bb.flip(); FileOutputStream fos = new FileOutputStream(file2); FileChannel fc2 = fos.getChannel(); fc2.write(bb); long end = System.currentTimeMillis(); System.out.println(end-begin); } }
一个使用bufferedreader,bufferedwriter的例子
package nio; import java.io.*; public class BufferReadDemo { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub long begin = System.currentTimeMillis(); File file = new File("a.txt"); System.out.println(file.length()); File file2 = new File("demo.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); BufferedWriter bw = new BufferedWriter(new FileWriter(file2)); //StringBuffer sb = new StringBuffer(""); String str = ""; while((str=br.readLine())!=null) { //sb.append(str); //sb.append("\n"); bw.write(str); bw.write("\n"); } //bw.write(sb.toString().getBytes()); long end = System.currentTimeMillis(); System.out.println(end-begin); } }
相关文章推荐
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
- MySql学习(七) —— 查询性能优化 深入理解MySql如何执行查询
- Spark生态之Alluxio学习19--alluxio性能提升分析与实验1
- Java 网络IO编程总结(BIO、NIO、AIO均含完整实例代码)
- 深入理解JVM(八)——java堆分析
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- java深入分析I/O流工作机制04-NIO 的工作方式
- java深入分析I/O流工作机制05-I/O性能优化
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- 方法重载(overload)的例子分析(摘自<深入理解Java虚拟机>)
- 如何利用 JConsole观察分析Java程序的运行,进行排错调优
- 深入理解Java对象的创建过程:类的初始化与实例化
- Ehcache的视频-如何用Ehcache提升你的Java应用性能
- 深入理解函数内部原理(2)——对一个函数实例进行深入的分析
- 深入分析 java IO的工作机制
- Java IO和Java NIO在文件拷贝上的性能差异分析
- 【深入理解Java虚拟机JVM】java如何实现跨平台
- 深入理解JVM虚拟机 性能分析实战
- java.nio包的分析(三)---Charset的理解
- java NIO selector全面深入理解