ajaxfileupload.js 实现异步上传图片
2015-07-02 08:45
741 查看
netty实现的拷贝的方法;
首先引入Channel概念,在NIO编程中,数据读取都是从buff写到channel,从channel读取到buffer中;channel就相当于标准io的stream;(具体可以参考http://www.iteye.com/magazines/132-Java-NIO);
这里直接上代码:对比了标准io拷贝文件和NIO文件拷贝;
标准的io文件拷贝:
public static void copyFileCommon(String file_orignal,String file_des){
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream(file_orignal);
fos=new FileOutputStream(file_des);
try {
byte[] bytes=new byte[2048];
int i;
while((i=fis.read(bytes)) !=-1){
fos.write(bytes,0,i);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null)fis.close();
if(fos !=null)fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
netty实现的文件拷贝:
public static void copyFile(String file_orignal,String file_des){
FileInputStream fis=null;
FileOutputStream fos=null;
FileChannel fileInChannel=null;
FileChannel fileOutChannel=null;
try {
fis=new FileInputStream(file_orignal);
fos=new FileOutputStream(file_des);
fileInChannel=fis.getChannel();
fileOutChannel=fos.getChannel();
fileInChannel.transferTo(0, fileInChannel.size(), fileOutChannel);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null)fis.close();
if(fileInChannel!=null)fileInChannel.close();
if(fos!=null)fos.close();
if(fileOutChannel!=null)fileOutChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
总结:两种方法都能实现文件拷贝,但是nio方式实现的文件拷贝效率明显高于标准的io拷贝,推荐第二中方式拷贝文件的方法。
首先引入Channel概念,在NIO编程中,数据读取都是从buff写到channel,从channel读取到buffer中;channel就相当于标准io的stream;(具体可以参考http://www.iteye.com/magazines/132-Java-NIO);
这里直接上代码:对比了标准io拷贝文件和NIO文件拷贝;
标准的io文件拷贝:
public static void copyFileCommon(String file_orignal,String file_des){
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream(file_orignal);
fos=new FileOutputStream(file_des);
try {
byte[] bytes=new byte[2048];
int i;
while((i=fis.read(bytes)) !=-1){
fos.write(bytes,0,i);
}
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null)fis.close();
if(fos !=null)fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
netty实现的文件拷贝:
public static void copyFile(String file_orignal,String file_des){
FileInputStream fis=null;
FileOutputStream fos=null;
FileChannel fileInChannel=null;
FileChannel fileOutChannel=null;
try {
fis=new FileInputStream(file_orignal);
fos=new FileOutputStream(file_des);
fileInChannel=fis.getChannel();
fileOutChannel=fos.getChannel();
fileInChannel.transferTo(0, fileInChannel.size(), fileOutChannel);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null)fis.close();
if(fileInChannel!=null)fileInChannel.close();
if(fos!=null)fos.close();
if(fileOutChannel!=null)fileOutChannel.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
总结:两种方法都能实现文件拷贝,但是nio方式实现的文件拷贝效率明显高于标准的io拷贝,推荐第二中方式拷贝文件的方法。
相关文章推荐
- JSP基础实例_登录页面的制作_学习笔记
- JavaScript实现广告的关闭与显示效果实例
- JavaScript获取并更改input标签name属性的方法
- javascript获取select值的方法分析
- JavaScript实现动态添加,删除行的方法实例详解
- JS验证IP,子网掩码,网关和MAC的方法
- JavaScript实现单击下拉框选择直接跳转页面的方法
- JavaScript实现添加、查找、删除元素
- javascript实现简单的进度条
- JS实现从连接中获取youtube的key实例
- js跨域请求的5中解决方式
- JavaScript获得url查询参数的方法
- 浅谈Javascript线程及定时机制
- JavaScript实现点击自动选择TextArea文本的方法
- javascript 闭包详解
- javascript带回调函数的异步脚本载入方法实例分析
- JavaScript引用类型——基本包装类型
- 基本包装类型——JS学习笔记2015-7-1(第72天)
- JS 原型链
- jstat 显示结果的含义