资料搜索程序
文件搜索程序
基于文件的基本操作,编写了一个简单的文件搜索程序
1.界面
package fileFound; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; /** * 文件的查找登陆界面 * * @author lenovo * */ public class FileFoundUI extends JFrame{ public static void main(String args[]) { // 创建FileCopy对象 FileFoundUI fc = new FileFoundUI(); fc.showUI(); } /** * 初始化窗口 */ public void showUI(){ //设置标题 this.setTitle("文件统计器 v1.0"); //设置窗体大小 this.setSize(600,350); //创建流式布局器 java.awt.FlowLayout fl=new java.awt.FlowLayout(); this.setLayout(fl); //创建一个面板对象 JPanel jp=new JPanel(); //创建一个尺寸对象 java.awt.Dimension di=new java.awt.Dimension(392,96); //设置面板的大小 jp.setPreferredSize(di); //创建并给面板加上流式布局器 java.awt.FlowLayout fl1=new java.awt.FlowLayout(); jp.setLayout(fl1); //创建两个标签,创建两个文本框,一个按钮 JLabel jl1=new JLabel("源文件路径:"); final JTextField jt1=new JTextField(20); JLabel jl2=new JLabel("查找的内容:"); final JTextField jt2=new JTextField(20); JButton jb=new JButton("开始查找"); //将标签,文本行,按钮加到面板上去 jp.add(jl1); jp.add(jt1); jp.add(jl2); jp.add(jt2); jp.add(jb); //把面板加到窗体 this.add(jp); //创建一个多行文本框 final JTextArea jta=new JTextArea(11,50); this.add(jta); // 创建一个滚动条 JScrollPane jsp = new JScrollPane(jta); this.add(jsp); //窗体大小不可改变 this.setResizable(false); //关闭时退出 this.setDefaultCloseOperation(3); //将窗体显示出来 this.setVisible(true); //给开始复制按钮安装动作监听器 jb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String start="**********************************开始查找************************************\n"; //将start写入多行文本框中 jta.append(start); //得到源文件路径 String str1=jt1.getText(); //得到查找的内容 String str2=jt2.getText(); //创建一个FileFound对象 FileFound ff=new FileFound(); int count=ff.foundfile(str1, str2); //得到迭代器 java.util.Iterator<String> ite=ff.getlist().iterator(); while(ite.hasNext()){ jta.append(ite.next()+"\n"); } jta.append(" 查找完毕!!! 总共查找到:"+count+"个文件");
} }); } }
2.查找的方法
package fileFound; /** * 文件查找 * * @author lenovo * */ public class FileFound { // 定义一个队列,用来装入查找到得路径 java.util.ArrayList<String> sal = new java.util.ArrayList<String>(); /** * 查找文件 * * @param path * :查找文件范围的路径 * @param name * :查找的内容 * @return:找到的个数 */ public int foundfile(String path, String name) { // 计数器 int count = 0; // 根据给定路径创建文件 java.io.File file = new java.io.File(path); // 判断文件是否存在 if (!file.exists()) { return 0; } // 将文件夹下的装入文件数组 java.io.File[] fa = file.listFiles(); if (fa == null) { System.out.println("文件夹不存在"); return 0; } for (int i = 0; i < fa.length; i++) { // 得到文件的文件名 String s1 = fa[i].getName(); // 得到文件的绝对路径 String s2 = fa[i].getAbsolutePath(); // 如果给定的文件夹下有差查找内容 int num = s1.indexOf(name); // 如果是真实文件 if (fa[i].isFile()) { if (num >= 0) { count++; // 将路径装入队列 sal.add("查找到一个文件其路径为:" + s2); } } else if (fa[i].isDirectory()) { count += foundfile(s2, name); } } return count; } /** * 得到装载文件路径的队列 * * @return:装载文件路径的队列 */ public java.util.ArrayList<String> getlist() { return sal; } }
3.界面效果图: