当前位置: 首页 > 知识库问答 >
问题:

如何在Java中移动指定文件夹中的文件?

勾俊
2023-03-14

这是我的代码,我想创建方法,接受文件,并将其移动到我的电脑指定的文件夹。我只是把现有的文本文件复制到另一个文本文件中,但我想在指定的文件夹中移动,而不是复制。如何解决这个问题?

public static void main(String[] args) {
            InputStream inStream = null;
            OutputStream outStream = null;
    
            try {
    
                File afile = new File("C:\\Users\\anar.memmedov\\Desktop\\test.txt");
    
                File bfile = new File("C:\\Users\\anar.memmedov\\Desktop\\ok\\test3.txt");
    
                inStream = new FileInputStream(afile);
                outStream = new FileOutputStream(bfile);
    
                byte[] buffer = new byte[1024];
    
                int length;
                //copy the file content in bytes
                while ((length = inStream.read(buffer)) > 0) {
    
                    outStream.write(buffer, 0, length);
    
                }
    
                inStream.close();
                outStream.close();
    
                //delete the original file
                afile.delete();
    
                System.out.println("File is copied successful!");
    
            } catch (IOException e) {
                e.printStackTrace();
            }
        }

共有1个答案

岳高明
2023-03-14

您可以简单地使用files.move:https://docs.oracle.com/javase/7/docs/api/java/nio/file/files.html#move(java.nio.file.path,%20java.nio.file.path,%20java.nio.file.copyoption...)

将文件移动或重命名为目标文件。默认情况下,此方法尝试将文件移动到目标文件,如果目标文件存在,则失败,除非源和目标是相同的文件,在这种情况下,此方法无效。如果文件是符号链接,则移动符号链接本身,而不是链接的目标。可以调用此方法来移动空目录。在某些实现中,目录具有特殊文件或链接的条目,这些条目是在创建目录时创建的。在这样的实现中,当只有特殊条目存在时,目录被认为是空的。当调用以移动非空目录时,如果不需要移动目录中的条目,则该目录将被移动。例如,重命名同一FileStore上的目录通常不需要移动目录中的条目。当移动目录需要移动其条目时,此方法将失败(引发IOException)。移动文件树可能涉及复制而不是移动目录,这可以使用copy方法和files.walkfiletree实用工具方法来完成。

Path sourcePath = Paths.get("source");
Path targetPath = Paths.get("target");

Files.move(sourcePath, targetPath);
 类似资料:
  • 有没有办法手动指定文件夹的根? 我看到有3年(https://issues.gradle.org/browse/GRADLE-2816)开的票。 Gradle现在有这个功能吗?

  • 我也在尝试用Python创建一个脚本来读取文本文件。在文本文件的每一行上,都有一个文件名。我希望脚本在文本文件的每一行中循环,并将带有文件名的文件从循环的当前行、从源文件夹移动到特定的目标。 希望这段代码能更准确地说明我在做什么: 我想把文件的内容和特定的文件名放到一个数组中,但是我有62700个可能的文件名,所以我想如果它只是在循环到每一行时移动文件,那么它会更有效率吗? 我还想到了使用迭代器(

  • 问题内容: 我已经为“ Debian Linux”创建了一个Java应用程序。现在,我希望该应用程序读取放置在指定该应用程序的jar文件的目录中的文件。那么在File Object的参数中要指定什么呢? 在上述声明中,作为参数指定相对文件路径的参数是什么,该相对文件路径表示放置应用程序的jar文件的路径? 问题答案: 如果您知道文件的名称,那么当然 如果您不知道名称,则可以使用File对象的lis

  • 如何在Eclipse中配置Java动态Web项目,使Web-INF/lib文件夹位于子文件夹中? 例如,假设我希望我的“lib”文件夹位于此处: src/main/webapp/WEB-INF/lib 我的webapp根在这里: src/main/webapp/ 如何在Eclipse中配置此功能?我知道我可以“添加jar”,但我希望它们被组织在我的应用程序构建路径库部分的“Web应用程序库”部分。

  • 问题内容: 我查看了界面,但无法找到移动文件的方法。我将如何在Python中做相当于? 问题答案: ,或 全部采用相同的语法: 请注意,你必须file.foo在源和目标参数中都包含文件名()。如果更改,该文件将被重命名和移动。另请注意,在前两种情况下,用于创建新文件的目录必须已经存在。在Windows上,必须不存在具有该名称的文件,否则将引发异常,但即使在这种情况下,它也将以静默方式替换文件。 正

  • 问题内容: 如何在node.js上移动文件(如mv命令外壳)?有什么方法可以使用,还是应该读取文件,写入新文件并删除旧文件? 问题答案: 根据seppo0010的评论,我使用了重命名功能。 http://nodejs.org/docs/latest/api/fs.html#fs_fs_rename_oldpath_newpath_callback fs.rename(oldPath,newPath