文件这个词大家肯定不陌生,我们经常在电脑上随意地创建文件或文件夹来存放数据,也就是鼠标点三下的事儿,但是在Java中,这些操作就转换成了一行行的代码,乍一看也许很复杂,但其实真正掌握了Java这门语言后,真的就像自己下了一句命令一样简单,可惜自己还是未入门级选手,这些都还需要熟练,下面我们来看看这些基础的操作。
File类中的一些重要的方法:
boolean exists();判断文件是否存在
String getName();得到文件名
boolean createNewFile();创建新文件
boolean delete();文件存在的情况下删除文件
boolean isDirectory();判断是否为目录文件名
boolean isFile();判断是否为文件
boolean mkdir();创建文件目录
boolean mkdirs();创建多级目录
具体的创建,删除,统计文件等功能实现附上代码。
文件操作中我们需要注意下面这些问题:
1、 绝对路径就是目录在硬盘上真正的路径,简单来说就是从盘符开始的路径,而相对路径则是从程序运行的当前路径开始的路径。
2、 文件中在写路径时,由于目录分割符和路径分割符在Windows和Linus的平台上不同,分别是“\”“/”,为了实现Java程序的可移植性,我们最好使用File.separator来表示分割符,这样在不同的系统中就可以自动匹配本地操作系统需要的分隔符。如:
3、还学到一个递归时的简便写法
代替:
现在自己对于文件相关的掌握不是很熟练,只能总结这些没有营养的小知识点,文件搜索器还在实现中,希望自己完成之后能完善一下这篇总结。
附上练习代码:
File类中的一些重要的方法:
boolean exists();判断文件是否存在
String getName();得到文件名
boolean createNewFile();创建新文件
boolean delete();文件存在的情况下删除文件
boolean isDirectory();判断是否为目录文件名
boolean isFile();判断是否为文件
boolean mkdir();创建文件目录
boolean mkdirs();创建多级目录
具体的创建,删除,统计文件等功能实现附上代码。
文件操作中我们需要注意下面这些问题:
1、 绝对路径就是目录在硬盘上真正的路径,简单来说就是从盘符开始的路径,而相对路径则是从程序运行的当前路径开始的路径。
2、 文件中在写路径时,由于目录分割符和路径分割符在Windows和Linus的平台上不同,分别是“\”“/”,为了实现Java程序的可移植性,我们最好使用File.separator来表示分割符,这样在不同的系统中就可以自动匹配本地操作系统需要的分隔符。如:
File file = new File("E:"+File.separator+"javatext.txt");
3、还学到一个递归时的简便写法
for (File file : fileList)
代替:
for(int i=0;i<fileList.length;i++)
现在自己对于文件相关的掌握不是很熟练,只能总结这些没有营养的小知识点,文件搜索器还在实现中,希望自己完成之后能完善一下这篇总结。
附上练习代码:
public class FileDemo {
//主函数
public static void main(String[] args){
FileDemo fd = new FileDemo();
File file = new File("E:/程序/");
//File file = new File("E:/");
fd.createFile(file);
fd.listRoots();
int count = fd.countFile(file.getAbsolutePath());
System.out.println("文件总数:" + count);
}
//创建及删除文件的方法
public void createFile(File file){
//File file2 = new File("src/test0910/test2.txt");
if(!file.exists()){
try {
file.createNewFile();
System.out.println("文件创建成功!");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
file.delete();
}
}
//统计当前目录下的目录个数
public void listRoots(){
File [] lf=File.listRoots();
System.out.println("磁盘上的目录个数是:"+lf.length);
}
//统计当前目录下的文件个数
public int countFile(String path) {
int count = 0;
File file = new File(path);
if (file.isFile()) {
count++;
} else if (file.isDirectory()) {
File[] listFile = file.listFiles();
if (null != listFile) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
count += countFile(listFile[i].getAbsolutePath());
} else {
count++;
}
}
}
}
return count;
}
}