Java程序用缓冲IO来提高性能[Java编程]
本文“Java程序用缓冲IO来提高性能[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
Java 输入/输出(IO)的性能可以利用尺度的缓冲类晋升,就像操作系统通过缓冲恳求提高它的速度一样.比方,假如一段代码要求从磁盘上读取数据,它会试图读取内存中已有的数据;假如代码但愿向磁盘写一些东西,它大概在完成写操作前将输出在内存中存放一段时间以等候更多的数据.
在Java的IO系统中,将一个字符写入内存比写到磁盘上快得多,比方:
// 这段代码会抛出 IOException
Writer writer = new FileWriter( new File( "file.txt" ) );
for(int i=0; i〈1000; i++) {
writer.write(""+i);
writer.write(" ");
}
writer.close( );
在这个典范代码中,FileWriter一次输出一个数字,在Apple Powerbook 上丈量损耗的时间,第一次是180毫秒,今后是90毫秒,这个差别大概是JVM的当即(just-in-time)编译招致的.
给这段代码增添缓冲功效就是在FileWriter上成立一个BufferedWriter对象.
//这段代码会抛出IOException
Writer writer = new BufferedWriter(new FileWriter(
new File( "file.txt" )
) );
for(int i=0; i〈1000; i++) {
writer.write(""+i);
writer.write(" ");
}
writer.close( );
目前BufferedWriter会决意以什么频率向FileWriter发送写调用.可以利用flush( )办法强迫发出写调用.增添了BufferedWriter后,代码的运行时间是63毫秒.假如是有很多小量的输出,那么BufferedWriter在缺省条件下的性能晋升是非常明显的.
除了BufferedWriter外,BufferedOutputStream也具有相同的品质,关于输入就是BufferedReader和BufferedInputStream.
需求注意的是缓冲类不光是在文件系统上起作用,任何的Reader/Writer都能举行缓冲以提高字符输入/输出的速度,一样任何OutputStream/InputStream都能举行缓冲以提高字节IO的速度.
以上是“Java程序用缓冲IO来提高性能[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |