[英]Expression Language in java
我的目录中有文件
/home/jay/120123.txt
/home/jay/121343.txt
/home/jay/122123.txt
这里的关键是文件名的前三位是唯一的。 我如何在java中编写表达式语言(从未在java中编写EL),这与unix命令“ls 120 *”=“120123.txt”相同
所以像String getFile(String uniqueId)这样的方法将被称为
String file = getFile("120") and the file should be 120123.txt
我需要getFile()方法的逻辑
您想使用File.listFiles(FilenameFilter)。
也许是这样的:
public File[] getFiles(File folder, String prefix){
return folder.listFiles(new FilenameFilter(){
public boolean accept(File dir, String name){
return name.startsWith(prefix);
}
};
}
对于Java 6
您可能会发现Apache Commons IO中的WildcardFileFilter
对此非常有用:
File dir = new File(".");
FileFilter fileFilter = new WildcardFileFilter("120*.txt");
File[] files = dir.listFiles(fileFilter);
for (int i = 0; i < files.length; i++) {
System.out.println(files[i].getName());
}
对于Java 7
Files.newDirectoryStream提供此功能:
Path dir = Paths.get(".");
try (DirectoryStream<Path> stream = Files.newDirectoryStream(dir, "120*.txt")) {
for (Path entry : stream) {
System.out.println(entry.getFileName());
}
} catch (IOException e) {
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.