IO文件处理1

文件处理

File对象的初始化
1、FIle file = new File("e:\\demo\\a.txt");
2、File file = new File("e:\\demo","a,txt");
3、FIle file = new File("e:\\demo");
FIle file2 = new File(file,"a.txt");
File类获取功能
       public String[] list();   //返回指定目录下所有文件及文件夹的名称
	   public File[] listFiles();	//返回指定目录下所有文件(夹)的File数组
输出指定目录下,指定后缀名文件指定后缀名为 “.jpg”
package io;

import java.io.File;
import java.text.StringCharacterIterator;

public class FileDemo1 {

	public static void main(String[] args) {
	
		//定义文件对象file
		File file = new File("D://");
		
		//返回该路径下的file对象数组
		File[]  fileArray = file.listFiles();
		
		//增强for循环,遍历
		for(File f : fileArray){
			//判断是否为文件
			if(f.isFile()){
				//如果文件后缀名是 “.jpg” 输出
				if(f.getName().endsWith(".jpg")){
					System.out.println(f.getName());
				}
			}
		}
	}

}
方法优化:文件名称过滤器改进
           public String[] list(FilenameFilter filter)
		 * public File[] listFiles(FilenameFilter filter)
package io;

import java.io.File;
import java.io.FilenameFilter;

public class FileDemo1 {

	public static void main(String[] args) {
		
		//定义文件对象file
		File file = new File("D://");
		
		//返回该路径下的file对象数组
		String[]  strArray = file.list(new FilenameFilter() {
			
			@Override
			public boolean accept(File dir, String name) {
		
				//把这个文件或着文件夹的名称加不加到数组中,取决于这里的返回值是true还是false
				//是文件,加到数组中
				//相当于 
				//boolean flag = =file.isFile();
				//boolean flag2 = name.endsWith(".jpg");
		return new File(dir, name ).isFile() && name.endsWith(".jpg");
			}
		});
		
		//增强for循环,遍历
		for(String f : strArray){
			System.out.println(f);
		}
	}

}
批量修改文件名称
package io;

import java.io.File;

/* 需求:批量修改文件名
 * 修改之前:E:\评书\三国演义_001[评书网-]_桃园结义.avi
 * 修改之后:E:\评书\三国演义\001_桃园结义.avi
 * */

/*思路:
 * 1、封装目录
 * 2、获取该目录下所有的文件的file数组
 * 3、拼接一个新的名称,然后重命名即可
 * */

public class FileDemo3 {
	 public static void main(String[] args) {
	
		 //封装目录
		 File srcFolder = new File("E:\\评书\\三国演义");
		 
		 //获取该目录下所有的文件的file数组
		 File[] fileArray = srcFolder.listFiles();
		 
		 //遍历file数组,得到每一个file对象
		 for(File f : fileArray){
			 //System.out.println(f);
			 String name = f.getName();
			 
			 //找到第一个下划线的位置
			 int Index = name.indexOf("_");
			 
			 //从startIndex+1截取到startIndex+4
			 String numberString = name.substring(Index+1,Index+4);
			 //System.out.println(numberString);
			 //00~.数字截取完毕,之后截取章节名称
			 
			 //找到最后一个"_"的位置
			 int endIndex = name.lastIndexOf(".");
			 
			 //从最后一个下划线处开始截取到最后
			 String nameString = name.substring(endIndex);
		
			 String newName = numberString.concat(nameString);
			// System.out.println(newName);
			 
			  //组成新文件
			 File newFile = new File(srcFolder,newName);
			 
			 //重命名即可
			 f.renameTo(newFile);
		 }
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值