Java中的文件操作

时间:2010-05-22 22:38:55

标签: java file-io

我正在研究Java中的一个小应用程序,该应用程序在解析原始名称后采用目录结构并根据某种格式重命名文件。

为了促进这些文件操作,最好的Java类/方法是什么?

编辑:问题仅针对文件操作部分,我得到了“获取格式化名称”:)

编辑2:另外,如何递归列出文件?

4 个答案:

答案 0 :(得分:3)

使用java.io.File


列出目录中的所有文件

http://www.javaprogrammingforums.com/java-code-snippets-tutorials/3-how-list-all-files-directory.html

File folder = new File(path);
File[] listOfFiles = folder.listFiles(); 
for (int i = 0; i < listOfFiles.length; i++) {
    // Do something with "listOfFiles[i]"
}

更新

以递归方式列出文件,您最好的方法非常简单:

  • 创建目录队列。最初将第一个目录添加到队列
  • 从队列中弹出第一个目录元素。
  • 列出该目录中的所有文件,与上面相同
  • 迭代该目录中的所有文件
  • 如果文件是目录(使用isDirectory()方法),请将其添加到队列的后面。 否则,根据需要处理下一个文件(例如打印)
  • 队列为空时停止。

一个例子(我认为与上述方法略有不同)是http://www.javapractices.com/topic/TopicAction.do?Id=68


重命名文件

http://www.roseindia.net/java/example/java/io/RenameFileOrDir.shtml

    boolean Rename = oldfile.renameTo(newfile);

找到要重命名的新名称

我不确定您希望格式化规则是什么 - 当我在Perl中实现相同的实用程序供我自己使用时,我使用了正则表达式。对于Java,那就是java.util.regex

答案 1 :(得分:1)

Sun Totorial可能是一个好的开始。如果我在哪里,我基本上会检索目录中的所有文件,然后循环遍历它们,如图here所示。您可能还必须使用正则表达式,可以找到基本教程here

答案 2 :(得分:1)

你总是可以使用标准的java.io.File类,但它本身并不是很有用。

对于复杂的文件I / O操作,我建议使用Apache Commons IO,它为(以及其他)文件操作提供了丰富的类库。查看FileUtilsFilesystemUtils

等类

答案 3 :(得分:0)

File课程,可以满足您的所有需求: