我的任务是我有一个 inputFileLocation 和一些配置文件的列表,并且需要检查这些文件是否存在于该位置。
- 例子:
inputfileLocation = C:/input
- 配置文件列表:
sample_a.conf, refund_a.conf, sample_b.conf, refund_b.conf
需要检查文件是否存在,然后返回sample.conf
文件列表和文件列表refund.conf
。
如何在 java 中实现这一点?
我的任务是我有一个 inputFileLocation 和一些配置文件的列表,并且需要检查这些文件是否存在于该位置。
inputfileLocation = C:/input
sample_a.conf, refund_a.conf, sample_b.conf, refund_b.conf
需要检查文件是否存在,然后返回sample.conf
文件列表和文件列表refund.conf
。
如何在 java 中实现这一点?
使用java.io.File
类。它有方法:
exists()
测试此抽象路径名表示的文件或目录是否存在。
list(FilenameFilter)
返回一个字符串数组,命名由该抽象路径名表示的目录中满足指定过滤器的文件和目录。
很简单:
import java.io.File;
import java.util.LinkedList;
import java.util.List;
public class FileFinder
{
private String mInputFileLocation;
private List<String> mSampleList;
private List<String> mRefundList;
public FileFinder(String inputFileLocation)
{
mInputFileLocation = inputFileLocation;
mSampleList = new LinkedList<String>();
mRefundList = new LinkedList<String>();
}
public void processList(List<String> filenameList)
{
for (String filename : filenameList)
{
File f = new File(mInputFileLocation, filename);
if (f.exists())
{
if (filename.startsWith("sample_"))
{
mSampleList.add(filename);
}
else if (filename.startsWith("refund_"))
{
mRefundList.add(filename);
}
}
}
}
public List<String> getSampleList()
{
return mSampleList;
}
public List<String> getRefundList()
{
return mRefundList;
}
}
File path = new File("C:/input");
// Get the list of files in the directory
File [] files = path.listFiles();
for (int i = 0; i < files.length; i++){
// Check whether files[i] is a file. If it is a file, it will print it.
if (files[i].isFile()){
System.out.println(files[i]);
}
}
我会这样做:
exists()
;isDirectory()
;iterateFiles()
方法获取文件。