`

【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
分享到:
评论

相关推荐

    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)来...

    aspose-words-20.2-android.via.java.zip

    标题 "aspose-words-20.2-android.via.java.zip" 暗示这是一个针对Android平台的Java库,用于处理Microsoft Word文档并将其转换为PDF格式。Aspose.Words是Aspose公司提供的一个强大的文档处理组件,它允许开发者在...

    mysql-connector-java-8.0.17.jar.zip

    MySQL Connector/J 8.0.17 是MySQL官方提供的用于Java应用程序与MySQL数据库进行连接的驱动程序,也就是JDBC(Java Database ...下载并正确使用这个JAR文件,可以极大地提升Java应用与MySQL数据库的集成效率。

    mysql-connector-java-8.0.21.zip

    MySQL是世界上最受欢迎的开源数据库系统之一,而MySQL Connector/J则是MySQL官方提供的用于Java应用程序的JDBC(Java Database Connectivity)驱动程序。"mysql-connector-java-8.0.21.zip"是一个包含MySQL ...

    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请求中的文件上传功能。这两个库为开发者提供了便捷、高效...

    commons-io-2.11.0.rar

    Apache Commons IO 是一个Java库,专门用于处理输入/输出(I/O)操作。这个库提供了大量的实用工具类,简化了常见的文件、流、过滤器、读写操作等任务。"commons-io-2.11.0.rar"是Apache Commons IO库的版本2.11.0的...

    mysql-connector-java-8.0.13.jar mysql数据库驱动下载

    MySQL-Connector-Java是Oracle官方提供的用于Java应用程序连接MySQL数据库的驱动程序,它实现了Java Database Connectivity (JDBC) API,使得Java开发者能够方便地在Java应用中与MySQL数据库进行交互。 在Java开发...

    目录多文件上传-JAVA IO流常用详解

    本文将详细介绍一个Java程序中的功能模块——如何实现目录多文件上传,并利用Java IO流进行文件复制操作。该功能可以实现在用户选择一个目录后,自动扫描并上传该目录下的所有文件及其子文件夹,最终达到完整备份或...

    mysql-connector-java-8.0.27.tar.xz

    可适用于MySQL8.0.27版本的mysql-java-connector-java.jar文件

    commons-fileupload-1.2.jar和commons-io-1.3.2.jar

    新建一个servlet: FileUpload.java用于文件上传: package com.drp.util.servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet....

    android-4.1.1.4-API文档-中文版.zip

    赠送jar包:android-4.1.1.4.jar; 赠送原API文档:android-4.1.1.4-javadoc.jar; 赠送源代码:android-4.1.1.4-sources.jar; 赠送Maven依赖信息文件:android-4.1.1.4.pom; 包含翻译后的API文档:android-4.1....

    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-...

    commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar程序文件

    Apache Commons FileUpload与Apache Commons IO是Java开发中用于处理文件上传功能的重要库。这两个库在Web应用程序中尤其常见,因为它们提供了处理HTTP请求中的多部分数据(如表单上传的文件)的便捷方法。 `...

    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的核心特点**: - **多语言...

    android-studio-2021.2.1.16-linux.tar.gz

    Android Studio 是Google推出的一款基于IntelliJ IDEA的免费集成开发环境(IDE),专门用于开发Android应用程序。它提供了丰富的工具集,包括代码编辑器、调试器、构建工具、模拟器和性能分析器,为开发者提供了一站...

    com.guo.android_extend:android-extend:1.0.6

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

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

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

    android-studio-2020.3.1.26-windows.rar【官方正版】

    Android Studio是谷歌官方推出的专为Android应用开发设计的集成开发环境(IDE),它提供了全方位的工具集,帮助开发者高效地构建、调试和发布应用程序。此版本为2020.3.1.26,专为Windows操作系统优化,确保在...

    draw.io-21.6.8-windows-no-installer.rar

    drawio-desktop is a diagramming and whiteboarding desktop app based on Electron that wraps the core draw.io editor.

    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