Java高效缓冲区的代码 java高效缓冲区的代码怎么写( 二 )


import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
【Java高效缓冲区的代码 java高效缓冲区的代码怎么写】import java.io.InputStream;
import java.io.OutputStream;
public class TestBuffer {
public static void main(String args[]) throws IOException {
String from = "f:/1.MP3";
System.out.println(from);
long startTime1 = System.currentTimeMillis();
TestBuffer.readWriteWithBuffer(from, "f:/2.MP3");
long endTime1 = System.currentTimeMillis();
System.out.println("使用缓冲区读取耗时:" + (endTime1 - startTime1) +"ms");
long startTime = System.currentTimeMillis();
TestBuffer.readWrite(from,"f:/3.MP3");
long endTime = System.currentTimeMillis();
System.out.println("直接读取耗时:" + (endTime - startTime) +"ms");
}
public static void readWrite(String from, String to) throws IOException {
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream(from);
out = new FileOutputStream(to);
while (true) {
int data = https://www.04ip.com/post/in.read();
if (data =https://www.04ip.com/post/= -1) {
break;
}
out.write(data);
}
} finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
/***************************************************************************
* 使用缓存区读写文件
* @param from
* @param to
* @throws IOException
*/
public static void readWriteWithBuffer(String from, String to)
throws IOException {
InputStream inBuffer = null;
OutputStream outBuffer = null;
try {
inBuffer = new BufferedInputStream(new FileInputStream(from));
outBuffer = new BufferedOutputStream(new FileOutputStream(to));
while (true) {
int data = https://www.04ip.com/post/inBuffer.read();
if (data =https://www.04ip.com/post/= -1) {
break;
}
outBuffer.write(data);
}
} finally {
if (inBuffer != null) {
inBuffer.close();
}
if (outBuffer != null) {
outBuffer.close();
}
}
}
}
运行例子时会根据mp3文件的大小决定运行时间的长短,尽量使用小一点的mp3文件,运行时需耐心等待一段时间
java中如何使用缓冲区对文件进行读写操作?首先Java高效缓冲区的代码 , 了解下什么是缓冲区:
电脑内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区 。
栈——就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区 。里面的变量通常是局部变量、函数参数等 。
堆——就是那些由new分配的内存块,他们的释放编译器不去管 , 由我们的应用程序去控制,一般一个new就要对应一个delete.如果程序员没有释放掉 , 那么在程序结束后,操作系统会自动回收 。
自由存储区——就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的 。
全局/静态存储区——全局变量和静态变量被分配到同一块内存中,在以前的C语言中,全局变量又分为初始化的和未初始化的,在C++里面没有这个区分了,他们共同占用同一块内存区 。
常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,Java高效缓冲区的代码你要通过非正当手段也可以修改)
电脑缓冲区就是预留下来的做为急用的那一部分,为暂时置放输出或输入资料的内存 。
如何对缓冲区进行操作:
当我们读写文本文件的时候,采用Reader是非常方便的,比如FileReader , InputStreamReader和BufferedReader 。其中最重要的类是InputStreamReader ,  它是字节转换为字符的桥梁 。你可以在构造器重指定编码的方式,如果不指定的话将采用底层操作系统的默认编码方式,例如GBK等 。使用FileReader读取文件:

推荐阅读