`
liuyanttkl
  • 浏览: 20321 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

parse --CopyFileThread 2

阅读更多
程序思路:startCopy方法这只成private Boolean 传入两个参数 String src,String dest,分别代表源文件和目标文件。

File srcFile=new File(src);实例化一个文件对象 将代表源文件的参数传入进去,接下来判断源文件是否存在

If(!srcFile.exists())

{

JOptionPane.showmessage(null,“源文件”+ src+”不存在”);

Finished=true;

Return false;

}

接下来实例化一个文件对象,代表目标文件 

File destFile=new File(dest+File.separator+ srcFile.getName());

如果目标文件已经存在  那么就要删除目标文件

showConfirmDialog:

public static int showConfirmDialog(Component parentComponent,

                                    Object message,

                                    String title,

                                    int optionType,

                                    int messageType,

                                    Icon icon)

                             throws HeadlessException

parentComponent - 确定在其中显示对话框的 Frame;如果为 null 或者 parentComponent 不具有 Frame,则使用默认的 Frame 

message - 要显示的 Object 

title - 对话框的标题字符串 

optionType - 指定可用于对话框的选项的 int:YES_NO_OPTION、YES_NO_CANCEL_OPTION 或 OK_CANCEL_OPTION 

messageType - 指定此消息种类的 int,主要用于确定来自可插入外观的图标:ERROR_MESSAGE、INFORMATION_MESSAGE、WARNING_MESSAGE、QUESTION_MESSAGE 或 PLAIN_MESSAGE 

icon - 要在对话框中显示的图标 


If(destFile.exists())

{

Int ref=JOptionPane.showConfirmDialog(null, "文件已经存在,确定要删除吗?","警告"+JOptionPane.OK_CANCEL_OPTION,

JOptionPane.INFORMATION_MESSAGE)

}

If(!ref==JOptionPane.OK_OPTION)

{

Finished=true;

Return false;

}


Finished=true;

Retuen false;

If(srcFile.isDirectory())

{

Finished=true;

Return copyDir(srcFile.getsolutPath,dest);

}

Else{

Return copyRealFileThread(src,destFile.getxolutePath);

}

Return true;


接下来写一个复制真正文件的方法 就是说 复制的文件中间是没有目录的 只含有文件。





Public Boolean copyRealFile(String srcName,String destName)//我们需要创建文件流的对象

{

Try{

//创建一个文件输入流的对象 将源文件的名字放到输入流对象中

FileInputStream fis=new FileInputStream(srcName);

//创建一个BufferedInputStream对象 ,把已经放入了文件的文件流转换成字节流

BufferedInputStream bis=new BufferedInputStream(fis);

FileOutputStream fos=new FileOutputStream(destName);

BufferedOutputStream bos=new BufferedOutputStream(fos);

 Int i=0;

If((i= bis.read())!=-1)

Bos.write(i);

Fis.close();

Fos.close();

//文件个数累计加加

fileCount++;

}

Catch(Exception e)

{}

Return true;

}


接下来,将复制文件的方法放入线程池中 让线程池中的线程去完成它



Private void copyRealFileThread(final String srcName,final String destName)

{

Ruunable runnable=new Runnable()

{

Public void run()

{

copyRealFile(srcName,destName);

}

};

threadPool.excute(runnable);//执行一个实现了Runnable接口的方法

}


接下来要取得复制文件的返回结果 ,在Main方法里面实现这个方法 然后打印出来

Public String getResultDescription()

{

//当拷贝还没有完成的时候 线程休眠三秒钟

While(!finished){

Try{

Thread.sleep(3000);

}

Catch(Exception e){


}

Return “复制的文件个数”+fileCount+

}

}


分享到:
评论

相关推荐

    parse-server-example, 使用Express和解析服务器模块的示例服务器.zip

    parse-server-example, 使用Express和解析服务器模块的示例服务器 parse-server-example使用解析服务器 MODULE的示例项目。阅读下面的完整解析服务器指南: ...

    android-parse-1.13.1

    parse-android-1.13.1.jar,parse-android-1.13.1-sources.jar

    前端开源库-parse-key

    "前端开源库-parse-key"就是这样一个专为前端开发者设计的库,它的主要功能是解析键值,将字符串转化为与Node.js的readline模块产生的键对象格式相匹配的数据结构。 Node.js的readline模块主要用于交互式读取流数据...

    perl-Parse-Yapp-1.21-2.el8.noarch(1).rpm

    官方离线安装包,亲测可用

    Node.js-parse-class解析hyperscript类符号

    在开发过程中,`parse-class-master`这个文件可能是一个项目源码的主目录,包含`parse-class`库的源文件、示例、测试用例等资源。如果你想深入理解其工作原理或对其进行定制,可以查看这些源码文件。通常,`index.js...

    前端开源库-parse5-htmlparser2-tree-adapter

    在`parse5-master`这个压缩包中,很可能包含了parse5库的源码和相关资源,你可以通过阅读源码、查看示例和文档来更深入地理解这个库的工作原理,以及如何有效地使用`parse5-htmlparser2-tree-adapter`。同时,熟悉这...

    前端开源库-remark-parse-yaml

    2. **错误处理**:当YAML格式不正确时,`remark-parse-yaml`会抛出有用的错误信息,帮助开发者定位问题。 3. **与其他`remark`插件集成**:由于它是`remark`生态系统的一部分,可以与其他`remark`插件无缝配合,实现...

    Python库 | dbc_parse-1.0.7-py3-none-any.whl

    资源分类:Python库 所属语言:Python 资源全名:dbc_parse-1.0.7-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    前端开源库-parse-element

    在压缩包`parse-element-master`中,通常包含`parse-element`库的源代码、示例、测试用例以及相关的文档。通过阅读源码,你可以深入理解其工作原理;查看示例,可以帮助你快速上手使用;测试用例则可以作为使用该库...

    Arduino-Parse-SDK-Arduino.zip

    Arduino-Parse-SDK-Arduino.zip,arduino sdk for the parse platformwarning-由于缺少使用和贡献,此项目已退出,如果您希望继续使用,请分叉或如果您希望维护此项目,请让您自己知道,Arduino是一家开源软硬件公司和...

    smart_parse-master.rar

    "smart_parse-master.rar" 是一个开源项目,主要目标是实现智能解析和填充地址信息,尤其适用于网页中的jQuery应用。这个项目可以在GitHub上找到,表明它遵循开放源代码的精神,允许用户自由下载、查看和修改源代码...

    parse-android-test-app,为解析测试服务器测试android应用程序。服务器:.zip

    "parse-android-test-app"是一个开源项目,专门设计用于测试Android应用程序对服务器数据的解析能力。这个项目可以帮助开发者验证和优化他们的数据解析逻辑,确保在实际应用中能够正确、高效地处理各种数据格式。 ...

    Node.js-parse-json-解析JSON拥有更有用的错误

    `parse-json`库就是为了解决这个问题,它提供了一个更强大的JSON解析功能,能够给出更详细的错误信息,帮助开发者更快地定位问题。 `parse-json`是由Sindre Sorhus创建的,他是一个知名的开源开发者,贡献了许多高...

    Python库 | parse-torrent-title-1.4.tar.gz

    《Python库解析:parse-torrent-title-1.4.tar.gz》 在信息技术领域,Python以其简洁易读的语法和强大的库支持,成为了开发者们青睐的编程语言之一。本篇文章将聚焦于一个名为`parse-torrent-title`的Python库,...

    parse-server漏洞分析.pdf

    - **漏洞引入点**:作者在代码提交`https://github.com/parse-community/parse-server/commit/50eed3cffe80fadfb4bdac52b2783a18da2cfc4f`中增加了`createHandler`函数,该函数负责处理HTTP请求中的`metadata`和`...

    Laravel开发-laravel-parse-sdk

    在本文中,我们将深入探讨Laravel开发中的一个重要组件——laravel-parse-sdk。这个SDK是专门为Laravel 5设计的,用于连接和操作Parse服务,它允许开发者在自托管的Parse服务器上存储和管理数据,从而扩展了Laravel...

    parse-scaffold:parse 示例脚手架,集成parse-server、parse-dashboard、parse-swagger

    parse 示例脚手架,集成parse-server、parse-dashboard、parse-swagger Installation clone本项目后: cd parse-scaffold npm install npm start 启动后,访问:https://${parse_host}:${parse_port}/,显示: 欢迎...

    Python库 | parse-1.1.6.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:parse-1.1.6.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    前端开源库-parse-stack

    2. **跨浏览器兼容**:考虑到不同浏览器对错误堆栈的实现可能存在差异,`parse-stack`致力于提供统一的解析接口,确保在各种浏览器环境下的稳定性和一致性。 3. **模块化设计**:作为前端库,`parse-stack`遵循模块...

    Laravel开发-laravel-parse-scaffolder

    在本文中,我们将深入探讨Laravel开发中的一个重要工具——laravel-parse-scaffolder。这个工具专为提升开发效率而设计,能够自动生成CRUD(创建、读取、更新、删除)操作所需的控制器、视图和模型,从而加速数据库...

Global site tag (gtag.js) - Google Analytics