zoukankan      html  css  js  c++  java
  • 自定义任务扩展 ANT

    使用ant自定义任务,可以非常简便的扩展ant, 其实与扩展jsp标签的方法是类似的.

    1. 新建一个项目,并导入ant的 jar包

    2. 写一个java类,继承org.apache.tools.ant.Task类,并覆盖execute方法

    package com;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.List;
    import java.util.ListIterator;
    import org.apache.tools.ant.BuildException;
    import org.apache.tools.ant.Task;
    /**
     * 该类主要用于 对文件中的行进行排序, 并将排序 后的行 写入 一个新 文件 中
     * @author Administrator
     */
    public class FileSort extends Task
    {
        private File file;          //源文件
        private File tofile;    //目标 文件
        
        @Override
        public void execute() throws BuildException
        {
            try
            {
                BufferedReader fromFile = new BufferedReader(new FileReader(file));
                BufferedWriter toFile = new BufferedWriter(new FileWriter(tofile)); 
                //读取文件
                String line = fromFile.readLine();
                List<String> fileString = new ArrayList<String>();
                while(line!=null)
                {
                    fileString.add(line);
                    line = fromFile.readLine();
                }
                //排序
                Collections.sort(fileString);
                //排序后写入新文件
                for(ListIterator<String> li= fileString.listIterator(); li.hasNext();)
                {
                    String str = li.next();
                    toFile.write(str);
                    toFile.newLine();
                }
                
                fromFile.close();
                toFile.close();
            }
            catch (Exception e)
            {
                e.printStackTrace();
            }
            
            super.execute();
        }
        //提供 2个属性file和tofile的set及get方法..省略

     3. 在项目根目录下,创建build.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <project name="myantExtend" default="sortFile" basedir=".">
    
        <target name="sortFile">
            <!--这个classpath实际 上是针对build.xml这个 文件所处的位置,
                classpath指向的就是FileSort.class文件对应的目录-->
            <taskdef name="myFileSortextend" classname="com.FileSort" classpath="bin">
            </taskdef>
                
            <!--使用刚刚定义的任务-->
            <myFileSortextend file="input.txt" tofile="output.txt" >
            </myFileSortextend>
        </target>
    </project>


     4. 将input.txt中写入要排序的字符, 然后运行该build,将会得到排序后的output.txt文件,至此,自定义一个ant任务已经完成了.

    目录结构如下图:

  • 相关阅读:
    luogu P1955 [NOI2015]程序自动分析
    luogu P5514 [MtOI2019]永夜的报应
    bzoj1816[Cqoi2010]扑克牌
    bzoj1040[ZJOI2008]骑士
    bzoj4582[Usaco2016 Open]Diamond Collector
    bzoj1029[JSOI2007]建筑抢修
    bzoj1079[SCOI2008]着色方案
    bzoj1051[HAOI2006]受欢迎的牛
    bzoj4525[Usaco2016 Jan]Angry Cows
    bzoj4512[Usaco2016 Jan] Build Gates
  • 原文地址:https://www.cnblogs.com/david-rui/p/ant.html
Copyright © 2011-2022 走看看