java学习笔记(4)
2016-04-08 16:54
429 查看
(一)老师上周留了作业,让我们改进复制代码,我做的不好,在老师上课讲解后,我基本明白了要怎么做,要把从源文件读取字节从一个改为多个,这样就可以提高运行效率,大大缩短运行时间,下面是我的两段代码和运行结果
1.运行较慢的
package CopyFile;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
实现文件复制
@author Administrator
*/
public class CopyFile {
public static void copyBytesFile(String sFileName,String dFileName) throws IOException{
}
/**
@param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long t1,t2;
t1 = System.currentTimeMillis();
try {
CopyFile.copyBytesFile("a.mp3", "temp.mp3");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t2 = System.currentTimeMillis();
System.out.println("用时:" + (t2 - t1));
}
}
![](https://images2015.cnblogs.com/blog/905533/201604/905533-20160408164659437-1639043868.png)
2.运行较快的
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{
}
/**
@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));
}
}
![](https://images2015.cnblogs.com/blog/905533/201604/905533-20160408164918687-523955054.png)
1.运行较慢的
package CopyFile;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**
实现文件复制
@author Administrator
*/
public class CopyFile {
public static void copyBytesFile(String sFileName,String dFileName) throws IOException{
//创建文件输入流对象和文件输出流对象 //文件输入流对象与源文件关联 FileInputStream fis = new FileInputStream(sFileName); //文件输出流对象与目标文件关联 FileOutputStream fos = new FileOutputStream(dFileName); //循环读取文件的内容,同时写出到外部的磁盘文件 int read = fis.read();//从关联的源文件中读一个字节,如果到达文件末,返回值为-1 while(read != -1){ fos.write(read);//向关联的目标文件写出一个字节 read = fis.read(); } //清空缓存关闭流对象 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.copyBytesFile("a.mp3", "temp.mp3");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
t2 = System.currentTimeMillis();
System.out.println("用时:" + (t2 - t1));
}
}
![](https://images2015.cnblogs.com/blog/905533/201604/905533-20160408164659437-1639043868.png)
2.运行较快的
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));
}
}
![](https://images2015.cnblogs.com/blog/905533/201604/905533-20160408164918687-523955054.png)
(二)期末课程设计 经过讨论,我们小组准备在期末课程设计做一个视频播放器,我们希望可以实现播放视频,快进快退,播放,暂停,停止等多项事件响应功能,并会努力去完成。下面是我们准备要做成的界面样式。
![](https://images2015.cnblogs.com/blog/905533/201604/905533-20160408165339406-965066973.jpg)
相关文章推荐
- Java 基于MySQL数据库的简单学生管理系统
- JAVA之——经典算法50题
- 如何把myeclipse中的项目导到git.oschina
- spring MVC配置
- Java 反照机制中 getMethod()和getDeclaredField()区别
- Struts2 - 常用的constant总结
- Java多线程之Lock的使用
- Java多线程之Lock的使用
- 23种设计模式(java)二
- Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目
- Spring _事务
- Java内存和垃圾回收的知识学习
- Java 并发专题 :闭锁 CountDownLatch 之一家人一起吃个饭
- JAVA设计模式--单例模式
- 用java的poi类读取一个excel表格的内容后再写入到一个新excel表格中的完整代码
- java对象的创建及访问定位
- java.sql.SQLException: ORA-00942: 表或视图不存在
- soa---java 多线程的---锁
- javap简介
- Java垃圾回收机制