IO

    科技2024-05-11  91

    package com.sxt.io3; import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.apache.commons.io.FileUtils; import org.apache.commons.io.IOUtils; import org.apache.commons.io.filefilter.DirectoryFileFilter; import org.apache.commons.io.filefilter.EmptyFileFilter; import org.apache.commons.io.filefilter.FileFilterUtils; import org.apache.commons.io.filefilter.SuffixFileFilter; public class CIOTest01 { public static void main(String[] args) throws IOException { } public void test1() { //文件大小 long len =FileUtils.sizeOf(new File("D:\\workspace02\\IO流\\src\\com\\sxt\\io3\\ConvertTest.java")); System.out.println(len); //目录大小 len=FileUtils.sizeOf(new File("D:\\workspace02\\IO流\\src")); System.out.println(len); System.out.println("***********************************************"); Collection<File> files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), EmptyFileFilter.NOT_EMPTY, null); for(File file:files) { System.out.println(file.getAbsolutePath()); } System.out.println("***********************************************"); files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); } System.out.println("***********************************************"); files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); } System.out.println("***********************************************"); files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")) , DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); } System.out.println("***********************************************"); files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class"),EmptyFileFilter.EMPTY) , DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); } System.out.println("***********************************************"); files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.NOT_EMPTY) , DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); } } public void TestWriteRead() throws IOException { //读取文件 String msg= FileUtils.readFileToString(new File("C:\\Users\\Administration\\Desktop\\新建文本文档.txt"),"UTF-8"); System.out.println(msg); byte[] datas=FileUtils.readFileToByteArray(new File("C:\\Users\\Administration\\Desktop\\新建文本文档.txt")); System.out.println(datas.length); //逐行读取 List<String>msgs=FileUtils.readLines(new File("C:\\Users\\Administration\\Desktop\\新建文本文档.txt"),"UTF-8"); for(String string:msgs) { System.out.println(string); } //写出文件 FileUtils.write(new File("happy.txt"), "开始学习\r\n","GBK"); FileUtils.writeStringToFile(new File("happy.txt"), "正在学习\r\n","GBK",true); FileUtils.writeByteArrayToFile(new File("happy.txt"), "结束学习\r\n".getBytes("GBK"),true); //写出列表 List<String> datas2=new ArrayList<String>(); datas2.add("aaaa"); datas2.add("cccc"); datas2.add("dddd"); FileUtils.writeLines(new File("happy.txt"),datas2,"...",true); } public void TestCopy() throws IOException { //复制文件 //FileUtils.copyFile(new File("D:\\workspace02\\IO流\\src\\IO.PNG"), new File( "copy-io.PNG")); //复制文件到目录 //FileUtils.copyFileToDirectory(new File("D:\\workspace02\\IO流\\src\\IO.PNG"), new File( "D:\\workspace02\\IO流\\lib")); //复制目录到目录 //FileUtils.copyDirectoryToDirectory(new File("D:/workspace02/IO流/dir"), new File("D:/workspace02/IO流/lib")); //复制目录 //FileUtils.copyDirectory(new File("D:/workspace02/IO流/dir"), new File("D:/workspace02/IO流/dir2")); //拷贝URL内容 // String url="https://timgsa.baidu.com/timg? image&quality=80&size=b9999_10000&sec=1602059527230&di=b81170ef43a6a6 496ab5815f70caa320&imgtype=0&src=http%3A%2F%2Ft8.baidu.com%2Fit%2Fu%3 D2247852322%2C986532796%26fm%3D79%26app%3D86%26f%3DJPEG%3Fw%3D1280%26h%3D853"; // FileUtils.copyURLToFile(new URL(url), new File("marve.jpg")); String datas=IOUtils.toString(new URL("http://www.baidu.com"),"UTF-8"); System.out.println(datas); } }

    文件大小、目录大小 25 27行代码 读取文件,逐行读取,写出文件,写出列表68-94行 复制文件 96-110行代码 列出子孙级 FileUtils.listFiles(directory,fileFilter,dirFilter); ( 第一个参数directory是写目录路径,第二个参数fileFilter是做过滤的,比如你只想要.java 的文件或者.class的文件,第三个参数dirFilter是表示是否显示子孙目录里面的文件)

    Collection<File> files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), EmptyFileFilter.NOT_EMPTY, null); for(File file:files) { System.out.println(file.getAbsolutePath());

    上面代码显示该目录下不为空的文件,不查询子目录里面的文件

    System.out.println("***********************************************"); files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); }

    上面代码显示该目录下不为空的所有文件,以及子目录里面的所有不为空的文件

    files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); }

    上面代码表示显示该目录以及子目录中所有以.java 为后缀的文件

    files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), FileFilterUtils.or(new SuffixFileFilter("java"),new SuffixFileFilter("class")) , DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath());

    上面代码表示显示该目录以及子目录中所有以.java 或者.class为后缀的文件

    files=FileUtils.listFiles(new File("D:\\workspace02\\IO流"), FileFilterUtils.and(new SuffixFileFilter("java"),EmptyFileFilter.NOT_EMPTY) , DirectoryFileFilter.INSTANCE); for(File file:files) { System.out.println(file.getAbsolutePath()); }

    上面代码显示该目录以及子目录下所有以.java为后缀且不为空的文件

    CommonsIO环境搭建链接:点这里即可http://commons.apache.org/proper/commons-io/ 下载解压后将commons-io-2.8.0.jar和commons-io-2.8.0-sources.jar(这里以2.8.0版本为例)复制到eclipse 如图1-1所示 然后右击commons-io-2.8.0.jar找到Build Path 选择Add To Build Path即可配置完成

    Processed: 0.016, SQL: 8