各位看官们,大家好,上一回中咱们说的是Java常用类之Date的例子,这一回咱们说的例子是Java常用类之文件操作。闲话休提, 言归正转。让我们一起Talk Android吧!
看官们,编写程序是离不开数据的,数据有多种载体,文件便是其中的一种载体。因此,我们在程序中经常使用的文件。Java把文件封装成了File类,我们通过该类可以对文件进行相关的操作。接下来我们就对File类做详细的介绍。
文件与目录
文件通常都位于相应的目录下,我们可以单独创建文件或者目录。创建文件和目录的方法待会就会介绍。如果我们我们想对文件和目录进行区分,可以使用isDirectory()和isFile()
方法来判断File类型的对象是目录还是文件,不过使用它们的前提是文件或者目录已经存在,否则它们总是返回false。
创建文件
创建文件时只需要使用File类的createNewFile()
方法就可以,不过我们需要创建一个File类型的对象,代码如下:
File file = new File(filePath);
如果参数中的filePath中包含有目录信息,那么必须保证目录已经存在,如果不存在,需要先创建目录。该方法只能创建文件,不能创建目录。
创建目录
创建目录时只需要使用File类的makeDire()
方法就可以,和创建文件时一样,我们也需要创建一个File
类型的对象。
删除文件和目录
删除文件时只需要使用File类的delete()
方法就可以,和创建文件时一样,我们也需要创建一个File类型的对象。该方法也可以删除目录。
获取文件列表
有时候需要获取一个目录下的文件列表,这时可以使用File类的list()
或者listFiles()
方法,前者返回的是String类型的数组,它把目录下的文件名都存放到了数组中;后者返回的是File类型的数组,它把文件名以及文件的的目录以File类型对象的形式存放于数组中。
看官们,这些内容可以看作是理论部分,接下来我们通过具体的代码来实践一下如何进行文件操作。
public class FileOp {
public static String filePath = "H:"+File.separator+"a.txt";
// public static String filePath = "H:"+File.separator+"t"+File.separator+"a.txt";
public static void main(String args[]) throws Exception
{
File file = new File(filePath);
if( !file.exists() ) // must check the file state
{
if(new File(file.getParent()).exists())
file.createNewFile();
else
System.out.println("Parent dir is not exist");
}
else
System.out.println("File is "+filePath+"is existed");
if(file.isDirectory())
System.out.println("it is diectory");
else
System.out.println("it is a file");
filePath = "H:"+File.separator;
String fileList[] = new File(filePath).list();
if(fileList != null)
{
System.out.println("--- File name as following:");
for(String i: fileList)
System.out.println(i);
}
File fileFullList[] = new File(filePath).listFiles();
if(fileFullList != null)
{
System.out.println("--- File name with path as following:");
for(File i: fileFullList)
System.out.println(i);
}
file.delete();
if(file.exists())
System.out.println("File deleted Failed");
else
System.out.println("File deleted OK");
}
}
在上面的程序中,有一个File.separator
没有介绍,它表示目录分隔符号,大家都知道Windows系统和Linux系统的目录分隔符不一样,使用该常量可以保证不同系统中的分隔符是相同的,进而提高了程序的可移植性。
下面是程序的运行结果,请大家参考:
it is a file
--- File name as following:
a.txt
code
download
--- File name with path as following:
H:\a.txt
H:\code
H:\download
File deleted OK
从上面的程序运行结果中可以看到,我们在H盘
根目录下创建一个a.txt
文件,出于“环保”的考虑,在程序结束时删除了该文件。此外我们还列出了H盘
下的文件和目录,其中一部分带有目录信息,这要归功中listFile()
方法。
看官们,File
类为我们操作文件提供了便利,不过随着技术的发展它就有点“不方便”了,为此在Java SE7中添加的新的文件类:Files
。它的功能更加强大。不过我们暂时先不介绍它,如果哪位看官感兴趣的话,可以参考JDK中的文档。
各位看官,关于Java常用类之文件操作的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!