我的应用需要获取现有文件进行处理。现在我有String格式的文件路径,如何用它获取文件?这样做是否正确:
File fileToSave = new File(dirOfTheFile);
这里dirOfTheFile是文件的路径。如果我以这种方式实现它,我会获得现有文件还是系统会为我创建另一个文件?
答案 0 :(得分:2)
这就是你想要做的。如果该文件存在,您将获得它。否则你将创建它。您可以通过调用该文件fileToSave.exists()
来检查该文件是否存在,如果不存在则执行相应的操作。
new
关键字在代码中创建File
对象,不一定是设备上的新文件。
如果您是dirOfFile,我会提醒您不要使用硬编码路径。例如,如果您要访问外部存储空间,请拨打Environment.getExternalStorageDirectory()
而不是硬编码/ SD卡。
答案 1 :(得分:2)
File
对象只是文件的引用(文件路径周围的包装);创建新的File
对象实际上并不创建或读取文件;要做到这一点,请使用FileInputStream来阅读,FileOutputStream来编写,或者使用各种文件助手方法(例如exists()
,createNewFile()
等)来实际执行操作在有问题的道路上。请注意,正如其他人所指出的那样,您应该使用系统提供的一个实用程序来查找内部或外部存储上的目录,具体取决于您希望文件的位置。
答案 2 :(得分:0)
试试这个..
File fileToSave = new File(dirOfTheFile);
if(fileToSave.exists())
{
// the file exists. use it
} else {
// create file here
}
如果不存在父文件夹,则可能需要调用fileToSave.getParentFile().mkdirs()
来创建父文件夹