配色: 字号:
JAVA之旅(二十八)
2016-10-07 | 阅:  转:  |  分享 
  
JAVA之旅(二十八)

一.File概述



文件的操作是非常重要的,我们先来看下他的基本概念

用于将文件或者文件夹封装成对象

方便对文件和文件夹的操作

File对象可以作为参数传递给流的构造函数

我们写个小例子先

packagecom.lgl.hellojava;



importjava.io.File;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

//创建File对象,不存在也没事

Filefile=newFile("a.txt");

//目录文件名

Filefile2=newFile("F:\\isblog\\Demo","a.txt");



//封装什么就打印什么

System.out.println(file);

}

}



其实就是一个类的使用

二.创建删除



是文件肯定有操作方法

1.创建

2.删除

3.判断

4.获取信息

1.创建



忽然如此,我们用实际的例子来说明岂不妙哉?

packagecom.lgl.hellojava;



importjava.io.File;

importjava.io.IOException;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

//创建File对象

Filefile=newFile("a.txt");



try{

//创建

file.createNewFile();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}



在指定的位置创建文件,如果文件已经存在,就不创建,并且返回false,和输出流不一样,输出流对象已建立文件,文件就已经存在,会覆盖

2.删除



删除我就不说了,直接这样

file.delete();



他还有一个方法比较好玩

file.deleteOnExit();



在程序退出之后删除文件

三.判断文件存在



判断文件是否存在

packagecom.lgl.hellojava;



importjava.io.File;

importjava.io.IOException;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

//创建File对象

Filefile=newFile("a.txt");

//判断是否存在,不存在则创建

if(!file.exists()){

try{

file.createNewFile();

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

}



这样我们就可以去判断文件是否存在且不存在就去创建文件了。

四.创建文件夹



我们继续来看怎么去创建文件夹,其实也很简单

packagecom.lgl.hellojava;



importjava.io.File;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

//创建File对象

Filefile=newFile("liuguilin");

file.mkdir();

}

}



OK,这样的话,就创建了,这里注意mkdir只能创建一级目录,而mkdirs可以创建多级文件夹目录

五.判断是否为文件/文件夹



有时候还是需要的

packagecom.lgl.hellojava;



importjava.io.File;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

Filefile=newFile("liuguilin");

//是否为文件

System.out.println(file.isFile());

//是否为文件夹

System.out.println(file.isDirectory());

}

}



他返回的是boolean值来确定是否存在,但是这里也要记住一电,就是一定要确定这个文件是否存在,所以我们的流程可以这样写

packagecom.lgl.hellojava;



importjava.io.File;

importjava.io.IOException;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

Filefile=newFile("liuguilin");

//判断文件是否存在

if(file.exists()){

//再去判断文件还是文件夹

if(file.isFile()){

System.out.println("文件");

}elseif(file.isDirectory()){

System.out.println("文件夹");

}

}else{

try{

file.createNewFile();

}catch(IOExcwww.shanxiwang.neteptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}

}

}

}



这样逻辑是比较清晰的

六.获取信息



获取的话,我们是怎么去获取信息的呢?毫无疑问,是get,比如getNmae之类的,我们用代码里的注释来说明是比较好的

packagecom.lgl.hellojava;



importjava.io.File;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

Filefile=newFile("liuguilin.txt");

Filefile2=newFile("haha.txt");

//项目路径下+文件名

System.out.println("路径:"+file.getPath());

//全路径

System.out.println("绝对路径:"+file.getAbsolutePath());

//最后一次修改时间

System.out.println("时间:"+file.lastModified());

//绝对路径中的文件父目录,如果是相对路径,返回的为空

System.out.println("父目录:"+file.getParent());

//把内容拷贝到另一个文本中并且删除自身

System.out.println(file.renameTo(file2));

}

}



运行的结果



七.文件列表



列出可用的系统目录,我们看代码

packagecom.lgl.hellojava;



importjava.io.File;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

File[]listRoots=File.listRoots();

for(Filef:listRoots){

//打印磁盘目录

System.out.println(f);

}

}

}

这样我们就可以得到有效盘符了



我们可以进行改进,我们打印C盘下的所有文件

packagecom.lgl.hellojava;



importjava.io.File;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

//必须封装了一个目录,该目录还必须存在

Filef=newFile("c:\\");

String[]list=f.list();

for(Stringfi:list){

System.out.println(fi);

}

}

}

得到的肯定就是所有文件的列表咯



八.文件过滤



我们做文件夹的时候经常会用到的一个小知识点,就是过滤文件

packagecom.lgl.hellojava;



importjava.io.File;

importjava.io.FilenameFilter;



publicclassHelloJJAVA{

publicstaticvoidmain(String[]args){

Filef=newFile("c:\\");

String[]list=f.list(newFilenameFilter(){

//过滤

@Override

publicbooleanaccept(Filedir,Stringname){

//只返回txt后缀的文件

returnname.endsWith(".txt");

}

});

for(Stringfi:list){

//过滤

System.out.println(fi);

}

}



}

需要监听,然后过滤。

献花(0)
+1
(本文系网络学习天...首藏)