0

我有一个文件夹用户,里面有很多具有相同扩展名的文件。我想使用过滤器查询查找所有用户文件名。

在以下代码中,我如何检索与查询过滤器相等的所有文件。

  public Collection<User> findUsers(String filter) {

     List<User> filteredList = new ArrayList<User>();
     try {
        FileInputStream fileInputStream = new FileInputStream( "Path of file" );
        ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
        Object object = objectInputStream.readObject();   

        while (object.equals(filter)) {
           filteredList.add((User)object);
           object = objectInputStream.readObject();
        }
        objectInputStream.close();
      }
      catch(Exception ioEx){
             //..............   
      }
   }
   return filteredList;
}

谢谢你的帮助。

4

2 回答 2

0

第一步:获取文件名

File folder = new File("your/path");
File[] listOfFiles = folder.listFiles();

第 2 步:将名称存储在某个集合对象中 第 3 步:遍历集合对象并找到您想要的任何过滤器

现在,你的概率是在创建这样的过滤器吗?

于 2013-09-23T05:30:18.373 回答
0

以下是可以帮助您的小片段:

File folder = new File("/Users/you/folder/");
File[] listOfFiles = folder.listFiles();
List<String> filteredList = new ArrayList<String>();

for (File file : listOfFiles) {
    // Be aware that folder.listFiles() give list with directories and files
    if (file.isFile()) {
        System.out.println(file.getName());

        // apply your filter. for simplicity I am equating the file names
        // name refers to input variable to method
        if(file.getName().toLowerCase().contains(name.toLowerCase())) { 
            // create user object and add it to list. 
            // Change below line with appropriate constructor params
            filteredList.add(file.getName())
        }
    }
}
于 2013-09-23T05:38:57.727 回答