`

【Android每日一讲】2012.11.28 快速地搜索手机文件引擎 - Java IO的应用

阅读更多
1. 范例说明
大家都应该用过操作系统的文件搜索功能吧!它可以快速协助我们找到想要的文件。如果要在手机制作一个文件搜索功能,又该如何实现呢?其实这个功能并不难,Java I/O的API中提供了Java.io.File对象,只要利用File对象的方法,再搭配Android的EditText、TextView等对象,就可以轻松做出一个简单的手机文件搜索引擎。
该范例中使用EditText、Button和TextView3种对象来实现此功能,用户将要搜索的文件名字或关键字输入到EditText中,单击Button后,程序会在根目录中寻找符合的文件,并将搜索结果显示于TextView中,如果找不到符合的文件,则显示“找不到文件”。
2. 运行结果



3. 编写代码
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); /* 载入main.xml Layout */
setContentView(R.layout.main); /* 初始化对象 */
mKeyword = (EditText) findViewById(R.id.mKeyword);
mButton = (Button) findViewById(R.id.mButton);
mResult = (TextView) findViewById(R.id.mResult); /* 将mButton加入onClickListener */
mButton.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v) { /* 取得输入的关键词 */
String keyword = mKeyword.getText().toString();
if (keyword.equals("")) {
mResult.setText("请勿输入空白的关键词!!");
} else {
mResult.setText(searchFile(keyword));
}
}
});
} /* 搜索文件的method */

private String searchFile(String keyword) {
String result = "";
File[] files = new File("/").listFiles();
for (File f : files) {
if (f.getName().indexOf(keyword) >= 0) {
result += f.getPath() + "\n";
}
}
if (result.equals(""))
result = "找不到文件!!";
return result;
}


4. 扩展学习与作业
该范例只是搜索的根目录下的文件或文件夹,如果要搜索所有的文件,则需要使用File.isDirectory()一层一层搜索下去。
Android 文件操作大全
http://www.eyeandroid.com/thread-10157-1-1.html

5.视频讲解
http://www.eyeandroid.com/thread-10761-1-1.html
  • 大小: 35.8 KB
0
1
分享到:
评论

相关推荐

    android-studio-2021.2.1.15-windows

    这个版本,即“android-studio-2021.2.1.15-windows”,是针对Windows操作系统的一个特定构建,提供了强大的功能和优化,使得开发者在Windows平台上能够更加高效地进行Android应用开发。 Android Studio 2021.2....

    java+servlet+commons-io-2.4.jar+commons-fileupload-1.3.jar实现文件的上传与下载

    在Java Web开发中,文件的上传与下载是常见的功能需求,尤其在构建动态网站或Web应用程序时。本教程将深入讲解如何使用Java Servlet、Apache Commons IO库(版本2.4)以及Apache Commons FileUpload库(版本1.3)来...

    get-platformio.py

    get-platformio.py get-platformio.py get-platformio.py get-platformio.py

    java-IO流 commons-io-2.11.0.jar

    java-IO流 commons-io-2.11.0.jar

    mchange-commons-java-0.2.19.jar

    c3p0依赖包mchange-commons-java-0.2.19.jar; 特别说明:c3p0(c3p0-0.9.5.5.bin.tgz)的lib包里面含此mchange-commons-java-0.2.19.jar文件。

    android-studio-2021.2.1.15-windows软件包

    《Android Studio 2021.2.1.15 Windows版:一站式移动应用开发环境详解》 Android Studio,作为谷歌官方推出的Android应用程序开发集成环境(Integrated Development Environment, IDE),是全球开发者广泛使用的...

    android-studio-2021.2.1.16-windows.zip

    这款软件基于IntelliJ IDEA,提供了丰富的功能和工具,使得开发者能够高效地创建高质量的Android应用程序。"android-studio-2021.2.1.16-windows.zip" 是Android Studio的一个特定版本,针对Windows操作系统优化。 ...

    android-studio-2021.3.1.17-windows.exe

    它提供了全面的代码编辑、调试、构建、性能优化等功能,支持各种Android平台和设备,帮助开发者高效地创建高质量的应用程序。 二、版本信息 “android-studio-2021.3.1.17-windows.exe”是Android Studio的Dolphin...

    rtmp-rtsp-stream-client-java-master.zip

    【rtmp-rtsp-stream-client-java-master.zip】这个压缩包文件是针对安卓平台的一个开源项目,主要用于实现RTMP和RTSP直播推流功能。在Android Studio 3.5及以上版本中开发,它允许用户将手机上的视频内容实时推送到...

    commons-fileupload-1.3.3.jar和commons-io-2.6.jar

    在Java开发中,上传文件是一项常见的任务,而`commons-fileupload-1.3.3.jar`和`commons-io-2.6.jar`是Apache Commons项目中的两个重要库,专门用于处理HTTP请求中的文件上传功能。这两个库为开发者提供了便捷、高效...

    protobuf-java-3.2.0.jar

    protobuf-java-3.2.0.jar

    Java高级-----Java-IO系统.ppt

    Java高级-----Java-IO系统.ppt

    eclipse-java-linux-gtk-x86_64.tar.gz

    标题中的“eclipse-java-linux-gtk-x86_64.tar.gz”指示这是一个为Linux操作系统设计的64位版本Eclipse集成开发环境(IDE),基于GTK+图形库。Eclipse是一款广泛使用的开源软件,主要用于Java编程,但也支持其他语言...

    mysql-connector-java-8.0.18.jar

    这是MySQL最新的jar,mysql-connector-java-8.0.18.jar

    com.guo.android_extend:android-extend:1.0.6

    压缩包内的文件 "android-extend-release.aar" 是一个 Android 库的二进制格式,它包含了编译后的 Java 类、资源文件、AndroidManifest.xml 等内容。`.aar` 文件是 Android 库项目的标准打包格式,用于在 Gradle ...

    commons-fileupload-1.2.1.jar与commons-io-1.3.2.jar

    其次,`commons-io-1.3.2.jar`是Apache Commons IO库的一部分,这是一个通用的IO(Input/Output)操作工具集,为Java开发者提供了大量实用的IO操作方法。在处理文件上传时,`commons-fileupload`可能会依赖`commons-...

    graalvm-ce-java8-linux-amd64-21.0.0.2.tar.gz

    在“graalvm-ce-java8-linux-amd64-21.0.0.2.tar.gz”这个文件中,我们看到的是GraalVM社区版(Community Edition)针对Java 8、Linux操作系统和AMD64架构的一个特定版本。 1. **GraalVM的核心特点**: - **多语言...

    mysql-connector-java-5.1.42-bin.jar 官网驱动下载

    mysql-connector-java-5.1.42-bin.jar 官网下载的驱动

    Android NDK开发指南-android.mk文件

    "Android NDK开发指南-android.mk文件" Android NDK 是 Android 操作系统中的一种开发工具...Android.mk 文件是 NDK 中的一个重要组件,用于描述编译系统的配置,使得开发者可以轻松地编译和生成 Android 应用程序。

    linux mysql-connector-java-5.1.36.tar.gz

    MySQL Connector/J是MySQL数据库在Java平台上使用的驱动程序,它提供了Java应用程序与MySQL数据库之间的连接功能。这个`mysql-connector-java-5.1.36.tar.gz`文件是一个针对Linux操作系统的压缩包,包含了运行在...

Global site tag (gtag.js) - Google Analytics