zoukankan      html  css  js  c++  java
  • IO组件之Commons 基本使用步骤

    引言

    Java 组件 :

    组件是抽象的概念而已,通俗的说是一些符合某种规范的类组合在一起就构成了组件。他可以提供某些特定的功能,可以理解为是由多个jar 包构成的 。

    简单理解为多个.class文件构成jar包 ,多个jar包构成组件 ,多个组件构成框架。

    Commons  如何使用 ?

    1、首先我们得到 http://apache.org/ ,这Commons组件使用包,这个网站是Apache软件基金组织  ,由世界上各大互联网公司提供了大量的前沿的组件和框架。

    2、选择IO的使用组件

    3、下载1.7+的即可

    4、Winodws选择第二个下载,Linuix 下载第一个。

    5、下载完后解压,将这两个拿过来用,一个是源码,一个是使用工具包

    6、然后呢,就能用了。我们来展示一下基本的操作

    1)统计文件大小及目录大小

     1 package 测试;
     2 
     3 import java.io.File;
     4 
     5 import org.apache.commons.io.FileUtils;
     6 
     7 public class CIOTest01 {
     8 
     9     public static void main(String[] args) {
    10         
    11         //文件的大小
    12         long len = FileUtils.sizeOf(new File("IO流之Commons/测试/CIOTest01.java"));
    13         System.out.println(len);
    14         //目錄的大小
    15         len = FileUtils.sizeOf(new File("IO流"));
    16         System.out.println(len);
    17     }
    18 }
    View Code

    2)遍历文件及子孙级目录

     1 package 测试;
     2 
     3 import java.io.File;
     4 import java.util.Collection;
     5 
     6 import org.apache.commons.io.FileUtils;
     7 import org.apache.commons.io.filefilter.DirectoryFileFilter;
     8 import org.apache.commons.io.filefilter.EmptyFileFilter;
     9 import org.apache.commons.io.filefilter.FileFilterUtils;
    10 import org.apache.commons.io.filefilter.SuffixFileFilter;
    11 
    12 /**
    13  * 列出文件的子孫級
    14  * @author liuzeyu12a
    15  *
    16  */
    17 public class CIOTest02 {
    18 
    19     public static void main(String[] args) {
    20         //參數2表示對文件的過濾,不爲空,參數3表示對目錄的過濾
    21         Collection<File> collects=FileUtils.listFiles(
    22                 new File("IO流之Commons\测试"), EmptyFileFilter.NOT_EMPTY, null);
    23         for (File file : collects) {
    24             System.out.println(file);
    25         }
    26         
    27         System.out.println("--------列出子孫級目錄----------");
    28         collects = FileUtils.listFiles(new File("E:/JAVA/北京尚学堂/08_IO流技术/003_code/000-005"), 
    29                 EmptyFileFilter.NOT_EMPTY, DirectoryFileFilter.INSTANCE); //列出子孫級目錄文件
    30         for (File file : collects) {
    31             System.out.println(file);
    32         }        
    33         
    34         System.out.println("--------列出以後綴名爲java的文件----------");
    35         collects = FileUtils.listFilesAndDirs(
    36                 new File("E:/JAVA/北京尚学堂/08_IO流技术/003_code/000-005"), 
    37                 new SuffixFileFilter("java"), DirectoryFileFilter.INSTANCE);
    38         for (File file : collects) {
    39             System.out.println(file);
    40         }
    41         
    42         System.out.println("--------列出以後綴名爲java,class的文件----------");
    43         collects = FileUtils.listFilesAndDirs(
    44                 new File("E:/JAVA/北京尚学堂/08_IO流技术/003_code/000-005"), 
    45                 FileFilterUtils.or(new SuffixFileFilter("java"),
    46                         new SuffixFileFilter("class"))
    47                  ,DirectoryFileFilter.INSTANCE);
    48         for (File file : collects) {
    49             System.out.println(file);
    50         }
    51         
    52         System.out.println("----------列出以java結尾且不爲空的文件-------------");
    53         collects = FileUtils.listFilesAndDirs(new File("E:/JAVA/北京尚学堂/08_IO流技术/003_code/000-005"), 
    54                 new FileFilterUtils().and(
    55                         new SuffixFileFilter("java"),EmptyFileFilter.NOT_EMPTY), 
    56                 DirectoryFileFilter.INSTANCE);
    57         for (File file : collects) {
    58             System.out.println(file);
    59         }
    60     }
    61 }
    View Code

    3)读取文件,按行读取

     1 package 测试;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 import java.util.List;
     6 
     7 import org.apache.commons.io.FileUtils;
     8 import org.apache.commons.io.LineIterator;
     9 
    10 /**
    11  * 讀取文件  ,按逐行讀取
    12  * @author liuzeyu12a
    13  *
    14  */
    15 public class CIOTest03 {
    16 
    17     public static void main(String[] args) throws IOException {
    18         String msg = FileUtils.readFileToString(new File("print.txt"),"gbk");
    19         System.out.println(msg);
    20         System.out.println("---------讀取到字節----------");
    21         byte[]datas = FileUtils.readFileToByteArray(new File("print.txt"));
    22         System.out.println(new String(datas,0,datas.length));
    23         
    24         System.out.println("-------------逐行讀取------------");
    25         List<String> msgs = FileUtils.readLines(new File("cde.txt"), "gbk");
    26         for (String string : msgs) {
    27             System.out.println(string);
    28         }
    29         
    30         System.out.println("-------------使用迭代器遍歷------------");
    31         LineIterator iter = FileUtils.lineIterator(
    32                 new File("cde.txt"), "gbk");
    33         while(iter.hasNext()) {
    34             System.out.println(iter.nextLine());
    35         }
    36     }
    37 }
    View Code

    4)写出内容,可以按行写出

     1 package 测试;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 import java.util.ArrayList;
     6 import java.util.List;
     7 
     8 import org.apache.commons.io.FileUtils;
     9 
    10 /**
    11  * 寫出內容
    12  * @author liuzeyu12a
    13  *
    14  */
    15 public class CIOTest04 {
    16 
    17     public static void main(String[] args) throws IOException {
    18         
    19         FileUtils.write(new File("haha.txt"), "xixxixixixi
    ", "gbk");//將原有文件刪除,換成最新寫入
    20         
    21         //以字符串形式寫入幷追加
    22         FileUtils.writeStringToFile(new File("haha.txt"), "嘿嘿嘿
    ", "gbk", true); 
    23         
    24         //以字節形式寫入幷追加
    25         FileUtils.writeByteArrayToFile(new File("haha.txt"), "wowowo
    ".getBytes("gbk"), true);
    26         
    27         //寫出列表
    28         List<String> msg = new ArrayList<>();
    29         msg.add("劉澤煜");
    30         msg.add("馬雲");
    31         
    32         //參數3屬於對象分割符
    33         FileUtils.writeLines(new File("haha.txt"), msg, "????", true);
    34     }
    35 }
    View Code

    5)文件和目录的拷贝动作

     1 package 测试;
     2 
     3 import java.io.File;
     4 import java.io.IOException;
     5 import java.net.URL;
     6 
     7 import org.apache.commons.io.FileUtils;
     8 import org.apache.commons.io.IOUtils;
     9 
    10 /**
    11  * 文件的拷貝
    12  * @author liuzeyu12a
    13  *
    14  */
    15 public class CIOTest05 {
    16 
    17     public static void main(String[] args) throws IOException {
    18         
    19         //複製文件
    20         FileUtils.copyFile(new File("薛之谦 - 你还要我怎样.mp3"), 
    21                 new File("copy-薛之谦 - 你还要我怎样.mp3"));
    22         
    23         //複製文件到目錄
    24         FileUtils.copyFileToDirectory(new File("薛之谦 - 你还要我怎样.mp3"), new File("lib"));
    25         
    26         //複製目錄到目錄
    27         FileUtils.copyDirectoryToDirectory(new File("lib"), new File("dest"));
    28         
    29         //複製目錄,在相同的目錄下生成lib2目錄
    30         FileUtils.copyDirectory(new File("lib"), new File("lib2"));
    31         
    32         //拷貝Url內容
    33         String url = "https://pic2.zhimg.com/v2-7d01cab20858648cbf62333a7988e6d0_qhd.jpg";
    34         FileUtils.copyURLToFile(new URL(url), new File("copyUrl.jpg"));
    35         String msg = IOUtils.toString(new URL("http://www.163.com"),"GBK");
    36         System.out.println(msg);
    37         
    38     }
    39 }
    View Code
  • 相关阅读:
    【NX二次开发】修改dlx对话框标题的方法
    【NX二次开发】导入x_t,UF_PS_import_data
    设置NX欢迎界面
    [转]10个顶级的CSS UI开源框架
    [转] 多线程 《深入浅出 Java Concurrency》目录
    [转] JAVA多线程和并发基础面试问答
    [转]StuQ 技能图谱(全套13张)
    [转] MongoDB shell 操作 (查询)
    搜集好的java技术帖子,持续更新,java程序员的要求
    [转]JAVA程序员一定知道的优秀第三方库(2016版)
  • 原文地址:https://www.cnblogs.com/liuzeyu12a/p/10356888.html
Copyright © 2011-2022 走看看