[英]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.