Java使用输入输出流完成,剪切,复制,粘贴,删除的功能(最好是代码解决此问题,比较直观,谢谢)

Java使用输入输出流完成,剪切,复制,粘贴,删除的功能(最好是代码解决此问题,比较直观,谢谢)模拟Windows系统完成4大功能,其中路径由用户从键盘输入,操作是否成功... Java使用输入输出流完成,剪切,复制,粘贴,删除的功能(最好是代码解决此问题,比较直观,谢谢)模拟Windows系统完成4大功能,其中路径由用户从键盘输入,操作是否成功请给出提示 展开
 我来答
chenhao_89
2017-05-20 · TA获得超过1352个赞
知道小有建树答主
回答量:764
采纳率:83%
帮助的人:436万
展开全部

你可以看看Java的NIO的包和FileVisitor interface以及walkFileTree方法,这里写两个例子,一个删除一个复制,代码来自于oracle

删除

Path start = ...
     Files.walkFileTree(start, new SimpleFileVisitor<Path>() {
         @Override
         public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
             throws IOException
         {
             Files.delete(file);
             return FileVisitResult.CONTINUE;
         }
         @Override
         public FileVisitResult postVisitDirectory(Path dir, IOException e)
             throws IOException
         {
             if (e == null) {
                 Files.delete(dir);
                 return FileVisitResult.CONTINUE;
             } else {
                 // directory iteration failed
                 throw e;
             }
         }
     });

复制

final Path source = ...
     final Path target = ...

     Files.walkFileTree(source, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE,
         new SimpleFileVisitor<Path>() {
             @Override
             public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
                 throws IOException
             {
                 Path targetdir = target.resolve(source.relativize(dir));
                 try {
                     Files.copy(dir, targetdir);
                 } catch (FileAlreadyExistsException e) {
                      if (!Files.isDirectory(targetdir))
                          throw e;
                 }
                 return CONTINUE;
             }
             @Override
             public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)
                 throws IOException
             {
                 Files.copy(file, target.resolve(source.relativize(file)));
                 return CONTINUE;
             }
         });
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式