Java IO基础操作:目录遍历与后缀名过滤
需积分: 31 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语句来自动关闭流,以避免资源泄露。
2019-07-23 上传
2022-07-10 上传
2024-11-26 上传
2024-11-26 上传
2024-11-26 上传
2024-11-26 上传
麦田
- 粉丝: 2328
- 资源: 67
最新资源
- JHU荣誉单变量微积分课程教案介绍
- Naruto爱好者必备CLI测试应用
- Android应用显示Ignaz-Taschner-Gymnasium取消课程概览
- ASP学生信息档案管理系统毕业设计及完整源码
- Java商城源码解析:酒店管理系统快速开发指南
- 构建可解析文本框:.NET 3.5中实现文本解析与验证
- Java语言打造任天堂红白机模拟器—nes4j解析
- 基于Hadoop和Hive的网络流量分析工具介绍
- Unity实现帝国象棋:从游戏到复刻
- WordPress文档嵌入插件:无需浏览器插件即可上传和显示文档
- Android开源项目精选:优秀项目篇
- 黑色设计商务酷站模板 - 网站构建新选择
- Rollup插件去除JS文件横幅:横扫许可证头
- AngularDart中Hammock服务的使用与REST API集成
- 开源AVR编程器:高效、低成本的微控制器编程解决方案
- Anya Keller 图片组合的开发部署记录