Java IO基础操作:目录遍历与后缀名过滤

需积分: 31 6 下载量 112 浏览量 更新于2024-07-30 收藏 290KB PDF 举报
"Java IO基础操作,包括列出指定目录下的所有文件、按后缀名筛选文件以及OutputStream的基本操作。" 在Java中,IO(Input/Output)操作是处理数据输入和输出的重要部分。以下是三个基本的IO操作示例: 1. 列出指定目录下的所有文件 这个例子展示了如何遍历并打印出给定目录`d:\Hello`下的所有文件和子目录。首先,创建一个`File`对象来表示目录,然后调用`listFiles()`方法获取目录中的所有文件和子目录。如果遇到的是一个子目录,递归地调用`print()`方法,以便打印出更深层的文件结构。通过使用字符串`str`和空格来缩进,使得输出的文件结构更易读。 ```java public class ListFileDemo { public static void main(String[] args) { File f = new File("d:\\Hello"); print(f, 0); } public static void print(File f, int len) { String str = ""; for (int i = 0; i < len; i++) { str += " "; } File[] file = f.listFiles(); for (int i = 0; i < file.length; i++) { System.out.println(str + file[i].getName()); if (file[i].isDirectory()) { print(file[i], len + 1); } } } } ``` 2. 列出指定后缀名的文件 在这个例子中,我们创建了一个实现了`FilenameFilter`接口的`FileAccept`类,用于过滤具有特定后缀名(例如`.java`)的文件。然后,使用这个过滤器来获取`e:\java`目录下所有`.java`文件,并打印它们的名称。 ```java class FileAccept implements FilenameFilter { public boolean accept(File dir, String name) { return name.endsWith(".java"); } } public class ListFiles { public static void main(String[] args) throws Exception { File f = new File("e:\\java"); FileAccept accept = new FileAccept(); File[] files = f.listFiles(accept); for (int i = 0; i < files.length; i++) { System.out.println(files[i]); } } } ``` 3. OutputStream操作 OutputStream是Java中用于写入原始字节流的抽象类。以下代码示例展示了如何使用`FileOutputStream`将字符串写入文件`d:\A.txt`。`FileOutputStream`是`OutputStream`的一个具体实现,用于将数据写入到文件。 ```java public class OutputDemo { public static void main(String[] args) throws Exception { File f = new File("d:\\A.txt"); OutputStream out = new FileOutputStream(f); String str = "HelloWorld"; // 将字符串转换为字节数组 byte[] bytes = str.getBytes(); // 写入字节数组到OutputStream out.write(bytes); // 关闭流 out.close(); } } ``` 以上代码将字符串"HelloWorld"写入到`A.txt`文件中。注意,写操作完成后,务必关闭OutputStream,以确保数据正确写入并释放系统资源。在实际开发中,可以使用try-with-resources语句来自动关闭流,以避免资源泄露。
2024-11-26 上传