java快速搜索文件_4.11 快速地搜索手机文件引擎Java I/O的应用

4.11 快速地搜索手机文件引擎Java I/O的应用

范例说明

大家都应该用过操作系统中的文件搜索功能吧!它可以快速协助我们找到想要的文件。如果要在手机制作一个文件搜索的功能,又该如何实现呢?其实这个功能并不困难,Java I/O的API中提供了java.io.File对象,只要利用File对象的方法,再搭配Android的EditText、TextView等对象,就可以轻松做出一个手机的文件搜索引擎。

本范例中使用EditText、Button与TextView三种对象来实现此功能,用户将要搜索的文件名称或关键字输入EditText中,单击Button后,程序会在根目录中寻找符合的文件,并将搜索结果显示于TextView中;如果找不到符合的文件,则显示"找不到文件"。

运行结果(见图4-11)

582c0e074a828d68df6372dd1ee1c953.png

图4-11  快速搜索手机根目录中的文件范例程序src/irdc.ex04_11/EX04_11.java

范例中以java.io.File对象来取得根目录下的文件,经过比较后,将符合结果的文件路径写入TextView中,若要在TextView中换行,需使用\n来作换行符号。

/* import程序略 */

public class EX04_11 extends Activity

{

/*声明对象变量*/

private Button mButton;

private EditText mKeyword;

private TextView mResult;

/** 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)

{

/*取得输入的关键字*/

Stringkeyword=mKeyword.getText().toString();

if(keyword.equals(""))

{

mResult.setText("请勿输入空白的关键字!!");

}

else

{

mResult.setText(searchFile(keyword));

}

}

});

}

/* 搜索文件的method */

private String searchFile(String keyword)

{

Stringresult="";

File[]files=newFile("/").listFiles();

for( File f : files )

{

if(f.getName().indexOf(keyword)>=0)

{

result+=f.getPath()+"\n";

}

}

if(result.equals(""))result="找不到文件!!";

return result;

}

}

扩展学习

在本范例中,searchFile(String keyword)这个方法的功能为搜索根目录下符合关键字的文件。在搜索文件的过程中,只搜索根目录中的文件,并没有进一步再对子目录下的文件比对,如果要再强化这个文件搜索的功能,让它也能搜索包含子目录下的所有文件,可以在程序中利用File.isDirectory()这个方法来判断其是否为目录。如果是的话,就继续往下一层寻找;不是的话,就终止向下寻找的动作。这个做法在后面的范例中会有详细的示范,要注意的是手机硬件环境是否能负荷程序做大规模的文件搜索,毕竟手机的硬件配备(处理器、内存)是比不上一般计算机的。

另外,在范例中仅针对关键字做了空白检查,在比较文件名称时也没有忽略大小写(要大小写完全符合才搜索的出来),如果要让这个搜索功能更完备,当然可以多做一点变化。例如,检查关键字是否包含特殊的字符、可选择比较文件时是否忽略大小写、可选择要搜索的文件类型,甚至是可自己指定要搜索的目录等,就看各位要如何运用了。

【责任编辑:云霞 TEL:(010)68476606】

点赞 0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值