File

File 对象

三种指向,File对象

File file = new File(String url);

File file = new File(String url1,String url2);

File file1 = new File(String url1);

File file2 = new File(file1,String url2);

三中创建方法文件/文件夹:

 File.createNewFile()  创建这样的文件,如果存在就不创建

File.mkdir() 创建文件夹 如果存在就不创建

File.mkdirs() 创建文件夹 多目录创建文件


碰到问题:

                如果不小心写成File file = new File(a.txt) --->在当前目录下

                 默认路径就在本项目下

//删除功能

File.delete() 删除 文件/文件夹----直接删除不了含有文件/文件夹的文件夹

File.重命名功能:

    File.renameTo(File file) 

            ---如果路径相同,则就是改名

                    --- File file1 = new File("aaa.jpg");

                    --- File newfile2 = new File("bbb.jpg") ---   file.renameTo(newfile2)

            ---如果路径不相同,则就是剪切改名

                    ---File file1 = new File("aaa.jpg");

                    ---File newFile = new File("e:\\bbb.jpg");

                    ---file1.renameTo(newFile);

File 判断的一些方法:

        isDirectory() 判断是否是目录

        isFile() 判断是否是文件

        exists() 判断是否存在

        canRead() 判断是否可读

        canWrite() 判断是否可写

        isHidden() 判断是否隐藏

File基本获取功能:

          String getAbsolutePath() 返回绝对路径

          String getPath() 返回相对路径

          String getName() 获取文件名称

          long length()   返回长度 字节数  

          long lasstModiFied() 获取最后一次修改时间 返回毫秒值

                ---Date d   = new Date(long)

                    ---SimpleDateFormat sdf = new SimpleDateFormat("yyyy--MM--dd HH:mm:ss");

                            ----String s =sdf.format(d);

                                    ---sysout(d)   得到最后修改时间

File高级获取功能:

       String [] list()  获取指定目录下所有文件的名称

       File[]  listFiles()  获取指定目录下的file数组--递归做删除美滴很

//例子 获取d盘下素有后缀名为.txt 文件的 文件名称



public class IoDemo3 {
	public static void main(String[] args) {
		File file = new File("D://");
		find(file);
		
	}
	public static void find(File file){
		File [] fileList = file.listFiles();
    if(fileList==null){return;}//这个一定要加,否则查找会出现空指针异常
for(File file1:fileList){System.out.println(file1);if(!file1.isFile()){find(file1);}else{String s =file1.getName();if(s.endsWith(".txt")){System.out.println(s);}}}}}

还有一种方法(用FilenameFilter 内部类):不能递归 简单查找。

  经典批量修改三国演义...那个题:

  三国演义_001_asdasdasdad_白展堂.jpg--->001_白展堂.jpg---目录:E:\测试

   代码实现:

public class IoDemo4 {
	//三国演义_001_asdasdasdad_白展堂.jpg--->001_白展堂.jpg---目录:E:\测试
	public static void main(String[] args) {
		File file = new File("E:\\测试");
		xiugai(file);
	}
	public static void xiugai(File file){
		File [] fileList = file.listFiles();
		for(File f1 : fileList){
			String ming = null;
			String fileName = f1.getName();
			//首先获取_的第一位置
			int index = fileName.indexOf("_");
			String filename1 = fileName.substring(index+1, index+4);
			int last = fileName.lastIndexOf("_");
			String filename2 = fileName.substring(last,fileName.length());
			
			ming = filename1+filename2;
			//开始改名字,创建一个file 文件 
			File newFile = new File(file,ming);
			System.out.println(newFile);
			f1.renameTo(newFile);  //修改名称的第一种方式 必须路径相同
		}	
	}
}

递归实现阶乘:

  

public static void main(String[] args) {
		System.out.println(jiecheng(5));
	}
	public static int jiecheng(int x){
		if(x==1){
			return 1;
		}else{
			return x*jiecheng(x-1);		
		}
	}

递归实现目录修改名字:

//三国演义_001_asdasdasdad_白展堂.jpg--->001_白展堂.jpg---目录:E:\测试
	public static void main(String[] args) {
		File file = new File("E:\\测试");
		xiugai(file);
	}
	public static void xiugai(File file){
		File [] fileList = file.listFiles();
		for(File f1 : fileList){
			String ming = null;
			String fileName = f1.getName();
			//首先获取_的第一位置
			int index = fileName.indexOf("_");
			String filename1 = fileName.substring(index+1, index+4);
			int last = fileName.lastIndexOf("_");
			String filename2 = fileName.substring(last,fileName.length());
			
			ming = filename1+filename2;
			//开始改名字,创建一个file 文件 
			File newFile = new File(file,ming);
			System.out.println(newFile);
			f1.renameTo(newFile);  //修改名称的第一种方式 必须路径相同
		}	
	}

    


                 

你可能感兴趣的:(JAVA_WEB)