您的位置:首页 > 编程语言 > Java开发

java第四次作业(补)

2016-04-17 15:53 429 查看
package CopyFile;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

/**

实现文件复制

@author Administrator

*/

public class CopyFile {

public static void copyBytesFile2(String sFileName,String dFileName) throws IOException{

//创建文件输入流对象和文件输出流对象
//文件输入流对象与源文件关联
FileInputStream fis = new FileInputStream(sFileName);
//文件输出流对象与目标文件关联
FileOutputStream fos = new FileOutputStream(dFileName);
//循环读取文件的内容,同时写出到外部的磁盘文件
byte[] b = new byte[1024];
/*从关联的源文件中读多个字节,保存到字节数组b中,如果到达文件末。
* 返回值为-1,否则返回值为实际读到的字节数。
*/
int read = fis.read(b);//从关联的源文件中读一个字节,如果到达文件末,返回值为-1
while(read != -1){
fos.write(b);//向关联的目标文件写出一个字节
read = fis.read(b);
}
//清空缓存关闭流对象
fis.close();
fos.close();

}

/**

@param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

long t1,t2;

t1 = System.currentTimeMillis();

try {

CopyFile.copyBytesFile2("a.mp3", "temp.mp3");

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

t2 = System.currentTimeMillis();

System.out.println("用时:" + (t2 - t1));

}

}

}

} catch (FileNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

之前一个中文需要两个字节,而改进后的二进制流大大提升了效率
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: