commons-io 三方架包

  • 文件拷贝、文件上传,都是使用字节流 -->缓冲流.
  • 将自己写的文件拷贝操作,进行打包(Jar包)操作。

基本步骤:选择文件–>右键,选择Export–>java–>JAR file–>next–>选择存放的位置–>Finish

java的架包在哪里 java导入架包_java的架包在哪里

java的架包在哪里 java导入架包_Test_02

  • 最后得到以下的jar包
  • 将刚才得到的jar包,复制粘贴到你需要用的文件下,选中jar包–>右键,选择Bulid Path–>Add to Bulid Path
  • 在其他项目中就不用在去编写文件拷贝代码,可以直接使用jar包提供的功能。
  • Java是开源的,面向对象的,可以使用jar形式进行类与类的引用。 公认的比较好用的文件操作架包 Commons-io。

下载步骤
网络中下载需要的jar, maven中央仓库。
jar包下载

java的架包在哪里 java导入架包_java_03

  • 导入项目中进行使用(创建lib文件夹,尽量放到lib文件夹下面)。

代码

1.FilenameUtils

//文件名的操作
	@Test
	void filename() {
		//获取文件扩展名
		String extension = FilenameUtils.getExtension("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		System.out.println(extension);
		String name = FilenameUtils.getName("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		System.out.println(name);
		boolean extension2 = FilenameUtils.isExtension("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo", "jpg");
		System.out.println(extension2);
		//一次比较多个
		String  [] es=new String[] {"jpg","excel","txt"};
		System.out.println(FilenameUtils.isExtension("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg", es));
		boolean equals = FilenameUtils.equals("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg", "D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		System.out.println(equals);
	}

2.FileUtils

// 对文件的操作    FileUtils
	@Test
	void fileutil() {
		//源文件与目标文件
		File src=new File("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		File dest=new File("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\new1111.jpg");
		try {
			FileUtils.copyFile(src, dest);
			System.out.println("复制成功");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	@Test
	void fileutil02() {
		//源文件与目标文件
		File src=new File("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		File dest=new File("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\new1111.jpg");
		try {
			FileOutputStream fos=new FileOutputStream(dest);
			FileUtils.copyFile(src, fos);
			System.out.println("复制成功");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

IOUtils

//IOUtils
	@Test
	void fileutil03() {
		//源文件与目标文件
		File src=new File("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		File dest=new File("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\new1111.jpg");
		try {
			IOUtils.copy(new FileInputStream(src), new FileOutputStream(dest));
			System.out.println("复制成功");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

1.8 之后的文件操作类

一.Files

  • 操作file的工具类.

1.常用方法

  • 基本上都需要一个Path
  1. static void
    delete(Path path) 删除一个文件。
  2. static long
    copy(Path source, OutputStream out) 将从文件到输出流的所有字节复制到输出流中。
  3. static Path
    createFile(Path path, FileAttribute<?>… attrs) 创建一个新的和空的文件,如果文件已经存在,失败了。
  4. static Path
    move(Path source, Path target, CopyOption… options) 移动或重命名一个文件到目标文件。
  5. static List
    readAllLines(Path path) 从文件中读取所有行。
  6. static boolean
    isDirectory(Path path, LinkOption… options) 测试一个文件是否是一个目录。
  7. static boolean
    exists(Path path, LinkOption… options) 测试一个文件是否存在。

2.Files的操作

//使用files进行文件操作
	@Test
	void  files() {
		//源文件和目标文件
		Path src = Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		Path dest = Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\file1111.jpg");
		//拷贝
		try {
			Files.copy(src, dest);
			System.out.println("文件拷贝成功");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
@Test
	void  files01() {
		//源文件和目标文件
		Path src = Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		Path dest = Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\file1111.jpg");
		//拷贝
		try {
			Files.copy(src, new FileOutputStream(dest.toFile()));
			System.out.println("文件拷贝成功");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}
  • 其他方法
//其他方法
	@Test
	void  files02() {
		//源文件和目标文件
		Path src = Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		Path dest = Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\file.txt");
		//删除文件
		try {
			Files.delete(dest);
			//创建文件并得到文件对象,得到的是path
			Path createFile = Files.createFile( dest);
			System.out.println(createFile);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
	}

二.Path是一个接口

  • Path 等同与File用来抽象表示文件的

java的架包在哪里 java导入架包_java_04

1.常用方法

java的架包在哪里 java导入架包_System_05


java的架包在哪里 java导入架包_java_06

@Test
	void  path() {
		//实例化path
		Path path=Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg");
		//方法操作
		System.out.println(path.compareTo(Paths.get("D:\\Java1\\Workspace1\\java02\\src1\\com\\xingyun\\Demo\\1111.jpg")));
		System.out.println("文件后缀判断"+path.endsWith("1111.jpg"));
		Path fileName = path.getFileName();//名字用path
		System.out.println(fileName);
		FileSystem fileSystem = path.getFileSystem();//获取文件系统对象
		System.out.println(fileSystem.getSeparator());
		System.out.println(path.getNameCount());//目录层次
		System.out.println(path.isAbsolute());
		//将path转为file,将file转为path
		File file = path.toFile();
		System.out.println(file);
		Path path2 = file.toPath();
		System.out.println(path2);
		//路径的起始
		System.out.println(path.startsWith("D:/Java1/Workspace1/java2/src1/com"));
	}

三.Paths

java的架包在哪里 java导入架包_java的架包在哪里_07

1.常用方法

  1. static Path
    get(String first, String… more) 将路径字符串,或一个字符串序列,当加入形成路径字符串,一个 Path。
  2. static Path
    get(URI uri) 将给定的URI的一 Path对象。