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 }

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 }

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 }

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\r\n", "gbk");//將原有文件刪除,換成最新寫入
20
21         //以字符串形式寫入幷追加
22         FileUtils.writeStringToFile(new File("haha.txt"), "嘿嘿嘿\r\n", "gbk", true);
23
24         //以字節形式寫入幷追加
25         FileUtils.writeByteArrayToFile(new File("haha.txt"), "wowowo\r\n".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 }

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 }

原文地址:https://www.cnblogs.com/liuzeyu12a/p/10356888.html

时间: 2024-10-20 04:30:09

IO组件之Commons 基本使用步骤的相关文章

Java 文件上传组件 Apache Commons FileUpload 应用指南(转)

在最初的 http 协议中,没有上传文件方面的功能.RFC1867("Form-based File Upload in HTML".)为 http 协议添加了这个功能.客户端的浏览器,如 Microsoft IE, Mozila, Opera 等,按照此规范将用户指定的文件发送到服务器.服务器端的网页程序,如 php, asp, jsp 等,可以按照此规范,解析出用户发送来的文件. 2.1客户端 简单来说,RFC1867规范要求http协议增加了file类型的input标签,用于浏览

乐字节Java之file、IO流基础知识和操作步骤

嗨喽,小乐又来了,今天要给大家送上的技术文章是Java重点知识-IO流. 先来看看IO流的思维导图吧. 一. File 在Java中,Everything is Object!所以在文件中,也不例外!在Java中,可以用 File类来表示一个与硬盘上文件联系!!!注意: 1.File仅代表一个联系,可能文件存在,也可能不存在: 2.这里的文件可以是文件,也可以是文件夹: 在常用类中已经详细讲过File,此处不在讲解 二. IO流 1.流概念 流即流动.流向,从一端流向另一端.如水流:从山里流向到

组件化网页开发 3步骤 / 20门课

1,项目:jSon和Ajax登录功能 2,实战:挂号平台首页 最后的项目实战没有完成... 原文地址:https://www.cnblogs.com/Knowledge-is-infinite/p/11216498.html

文件的上传Commons FileUpload(web基础学习笔记十六)

一.表单设置 <form action="<%=request.getContextPath()%>/jsp/admin/doAdd.jsp" enctype="multipart/form-data" method="post"> </form> 设置属性: enctype="multipart/form-data"; <tr> <td class="text_

javaWeb---文件上传(commons-FileUpload组件)

FileUpload是Apache组织(www.apache.org)提供的免费的上传组件,但是FileUpload组件本身还依赖于commons组件,所以从Apache下载此组件的时候还需要连同commons组件的IO包一起下载 commons-fileUpload上传组件对中文进行了良好的处理,对上传文件不会出现中文乱码问题,是目前最广泛的组件, 将commons-fileupload-1.2.1.jar和commons-io-1.4.jar配置到TOMCAT_HOME/lib/目录中 ³F

开源组件:(3)dbutils

commons-dbutils 是 Apache 组织提供的一个开源JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能.因此dbutils成为很多不喜欢hibernate的公司的首选. DbUtils组件的主要作用是简化jdbc操作. 项目准备 1. 引入mysql驱动:mysql-connector-java-5.1.38-bin.jar 2. 引入jar文件 : commons-dbutils-1.6.ja

Commons包详解

Apache Commons包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动.项目地址http://commons.apache.org/ Commons BeanUtils 提供对Java反射和自省API的包装. 依赖包:Commons Codec.Commons Logging Commons Codec 是编码和解码组件,提供常用的编码和解码方法,如DES.SHA1.MD5.Base64.URL和Soundx等. Commons Collections 是一个集合组件,

Apache Commons FileUpload实现文件上传

Commons FileUpload简介 Apache Commons是一个专注于可重用Java组件开发的 Apache 项目.Apache Commons项目由三个部分组成: 1.Commons Proper - 可重用Java组件的存储库. 2.The Commons Sandbox - 用于Java组件开发的工作区. 3.The Commons Dormant - 当前不活动的组件存储库. Commons-FileUpload是Commons Proper中的一个组件,该组件依赖于Comm

Java 之IO流及应用

IO流 IO流概述及FileWriter类的使用 FileReader类使用 缓冲流介绍和使用 IO流相关案例 NO.one IO流概述及FileWriter类使用 1.1 IO流概述及分类 IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的类都在IO包中 流按流向分为两种:输入流,输出流 1.2 FileWriter类使用 A:打开帮助文档 B:点击显示,找到索引,看到输入框 C:你要学习什么内容,你就在框框里面输入什么内容 举例:Random D:看包