FilenameUtils和FileUtils的使用

FilenameUtils和FileUtils几乎包括所有的对文件名称和文件文件夹的操作

1.FilenameUtils 

<dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.6</version>
        </dependency>
@Test
    public void test38() {
        String fileName="text.text";
        String directory="/work/";
        String fullName=directory+fileName;
        String fir_1="/a/b/c";
        String fir_2="/a/b/c";
        String windowUrl="\\aa\\bb\\cc";
        //获取文件名,去除文件路径和后缀名
        //结果:text
        System.out.println(FilenameUtils.getBaseName(fullName));
        //获得前缀
        //结果:/
        System.out.println(FilenameUtils.getPrefix(fullName));
        //获得文件名称
        //结果:text.text
        System.out.println(FilenameUtils.getName(fullName));
        //window文件路径转换为Linux的文件路径
        //结果:/aa/bb/cc
        System.out.println(FilenameUtils.separatorsToUnix(windowUrl));
        //合并路径和文件名,成为全路径名称,参数二不能带有"/"
        //结果:/work/text.text
        System.out.println(FilenameUtils.concat(directory,fileName));
        //判断文件路径是否相同
        System.out.println(FilenameUtils.equals(fir_1,fir_2));
        System.out.println(FilenameUtils.equalsNormalized(fir_1,fir_2));
        //判断指定的文件名称是否包含指定的文件扩展名
        System.out.println(FilenameUtils.wildcardMatch(fileName,"*.text"));
        //获得后缀名
        System.out.println(FilenameUtils.getExtension(fullName));

    }

2.FileUtils

1.写文件

	public static void main(String[] args) throws IOException {
		
//		FileUtils.write(new File("/Users/jjs/Desktop/abc.txt"), "commons-io工具类", "UTF-8", true);
		//以追加的方式写入
//		FileUtils.writeStringToFile(new File("/Users/jjs/Desktop/abcd.txt"), "作者:cxy", "UTF-8", true);
		//写入多行
		List<String> lines = new ArrayList<String>();
		lines.add("第一行");
		lines.add("第二行");
		FileUtils.writeLines(new File("/Users/jjs/Desktop/abcd.txt"), lines, true);
	}

2.读文件

	public static void main(String[] args) throws IOException {
		//读文件  
		System.out.println(FileUtils.readFileToString(new File("/Users/jjs/Desktop/abcd.txt"), "UTF-8"));
		System.out.println(FileUtils.readLines(new File("/Users/jjs/Desktop/abcd.txt"), "UTF-8")); //返回一个list 
	}

3.文件复制

	public static void main(String[] args) throws IOException {
		FileUtils.copyDirectory();
		FileUtils.copyDirectoryToDirectory();
		FileUtils.copyFileToDirectory();
		FileUtils.copyFile(new File("/Users/jjs/Desktop/abcd.txt"), new File("/Users/jjs/Desktop/abcd.txt_bak"));
		//可实现快速下载
		URL url = new URL("http://hzf-image-test.oss-cn-beijing.aliyuncs.com/hr_image/HF306268301810/1513632067664AbIB40pv_defalut.JPG?x-oss-process=image/resize,h_400");
		File file = new File("/Users/jjs/Desktop/pic.jpg");
		FileUtils.copyURLToFile(url, file);
	}

4.快速复制

	public static void main(String[] args) throws IOException {
 
		//复制方式1
		FileUtils.copyFile(new File("/Users/jjs/Desktop/abc.txt"), new File("/Users/jjs/Desktop/abc_bak.txt"));
 
		//复制方式2
		Writer write = new FileWriter("/Users/jjs/Desktop/abc_bak.txt");
		InputStream ins = new FileInputStream(new File("/Users/jjs/Desktop/abc.txt"));
		IOUtils.copy(ins, write);
		write.close();
		IOUtils.closeQuietly(ins);
		
		
		//将内容同时写入两个不同的文件,就当是一种另类的复制吧
		File test1 = new File("/Users/jjs/Desktop/split1.txt");
		File test2 = new File("/Users/jjs/Desktop/split2.txt");
		OutputStream outStream = null;
		try {
			FileOutputStream fos1 = new FileOutputStream(test1);
			FileOutputStream fos2 = new FileOutputStream(test2);
			//包含不同的文本  
			outStream = new TeeOutputStream(fos1, fos2);
			outStream.write("One Two Three, Test".getBytes());
			outStream.flush();
		} catch (IOException ioe) {
			System.out.println("Error writing to split output stream");
		} finally {
			IOUtils.closeQuietly(outStream);
 
		}
	}

快速获取网页内容:

	public static void main(String[] args) throws IOException {
		URL webUrl = new URL("https://wenku.baidu.com/view/7999faba960590c69ec376be.html?from=search");  
//		URL webUrl = new URL("http://ent.ifeng.com/a/20180105/43019249_0.shtml?_zbs_baidu_news");
		InputStream ins = webUrl.openStream();
		String contents = IOUtils.toString(ins, "gb2312");
		System.out.println("contents: " + contents);
	}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值