Java本身属于跨平台的语言,那么应该可以适应不同的平台的要求,那么为了解决可以自动适应不同系统的分隔符要求,所以在File类中提供了一下几个常量:
路径分隔符:public static final String pathSeparator; “;
分隔符:public static final String separator ;”/”或者“\”
第一部分:文件的创建:使用.createNewFile();方法
publicclass CreateFileDemo {
/**
* 创建文件
*/
publicstaticvoid main(String[] args) {
File file=new File("D:\\dd.txt");
try {
file.createNewFile();
}catch (IOException e) {
//TODO Auto-generated catchblock
e.printStackTrace();
}
}
}
第二部分:文件的删除:file.delete()前提是该文件存在,使用file.exists()
publicclass DeleteFileDemo {
publicstaticvoid main(String[] args) {
File file =newFile("D:"+File.separator+"dd.txt");
if(file.exists()){//判断文件是否存在
System.out.println("文件存在");
file.delete();
}
else{
System.out.println("该文件不存在");
}
第三部分:判断是否是文件还是目录
publicstaticvoid main(String[] args) {
File f1 =new File("D:"+File.separator+"dd.docx");
File f2 =new File("D:"+File.separator+"work");
System.out.println(f1.isFile());//判断是文件
System.out.println(f2.isDirectory());//判断是目录
}
第四部分:两种列出文件夹中文件的操作
publicstaticvoid main(String[] args) {
File f2 =new File("D:"+File.separator+"test");//找到File的实例
String[]list = f2.list();
for(int i = 0 ; i <list.length; i++){
System.out.println(list[i]);//列出一个目录下的目录或者文件名字
}
System.out.println("另一种方法:");
Filepath[] = f2.listFiles();//返回的是文件对象数组
for(int i = 0 ; i < path.length;i++){
System.out.print(path[i].getParent()+"----->");//得到上一次目录
System.out.println(path[i]);//列出该文件的名字或目录的名字包括路径
}
}
第五部分:创建目录
publicstaticvoid main(String[] args) {
File f2 =new File("D:"+File.separator+"test2"+File.separator+"test3");//找到File的实例
// f2.mkdir();//不能创建二级文件夹
f2.getParentFile().mkdir();//只能这样创建先创建第一层
}
第六部分:列出某一目录下所有的文件(包括路径)
publicstaticvoid main(String[] args) {
File file=new File("D:"+File.separator+"sql");//给定目录
getFile(file);//利用递归来得到所有的文件
}
publicstaticvoid getFile(File file){
if(file.isFile()){
System.out.println(file.getPath());
return ;
}
if(file.isDirectory()){
File[]filelist = file.listFiles();
if(filelist!=null){//防止文件隐藏
for(int i = 0; i <filelist.length; i++){
getFile(filelist[i]);
}
}
}
}