我想从目录中读取文件。在此目录中,有八个具有相同扩展名的附加文件(.csv)。同样,文件名不是直接知道的。 该文件的名称如下所示:
test_file_1_2017_06_24.csv
但是如果我第二天调用该目录,它可以改变。然后文件名是:
test_file_2_2017_06_25.csv或test_file_1_2017_06_25。
文件名和日期更改。 有没有办法在Java中读取文件“变量”或读取文件,但不知道确切的名称?目录总是相同的(“H:/)”(文件读取后,文件分别使用split()进一步处理结果字符串)。 谢谢你的回答!
编辑:阅读目录并仅显示csv-Files
File dir = new File("H:/");
File[] fileArray = dir.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".csv");
}
});
for(File f: fileArray){
System.out.println(f.getName());
}
答案 0 :(得分:0)
File directory = new File("H:/");
File[] allFilesInDir = directory.listFiles();
请参阅https://docs.oracle.com/javase/7/docs/api/java/io/File.html#listFiles()。
您还可以提供FilenameFilter
来获取.csv文件:
File[] allCsvFiles = directory.listFiles( new FilenameFilter() {
public boolean accept(File dir, String name) {
if ( name.toUpperCase().endsWith(".CSV") ) {
return new File(dir,name).isFile(); // Make sure we don't accept sub-directories ending in .csv
}
}
});
答案 1 :(得分:0)
您可以使用以下代码浏览文件夹,检查csv文件并使用它。希望它有所帮助。
namespace Web.Controllers
{
public class DataController : ApiController
{
private readonly ILog _log;
public Dictionary<string, string> Modules { get; set; } // << I want these to be injected!
public Dictionary<string, string> Data { get; set; } // <<
public DataController(ILog log) // gets injected
{
_log = log;
}
}
}