batchcommand.java

来自「Java编写个人日程管理工具, 具有添加编辑日程和自动适应功能, 程序包含完整的」· Java 代码 · 共 105 行

JAVA
105
字号
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package ui;import java.io.*;import java.util.Scanner;import java.util.StringTokenizer;import java.util.Calendar;import logical.AgendaService;import exception.IOAndFileException;import exception.BadCommandException;/** * 这个方法是批处理命令的类,实现命令的解析和执行,另外输出结果字符串 * @author zouhao */public class BatchCommand implements Command{    Scanner scanner;    boolean success;    Calendar cal;    int year;    AgendaService agenda;    String filename;    String command;    BufferedReader fileinput ;    Show show;    /**     * 命令的构造函数     */    BatchCommand()    {        agenda = AgendaService.getInstance();        year=2008;        success=false;        cal=Calendar.getInstance();        show=Show.getInstance();    }    /**     * 解析命令方法,如果命令不符合语法规则,抛出异常     * @param input 用于解析的命令输入字符串     */    public void parse(String input)    {        scanner = new Scanner(input);        StringTokenizer tmp = new StringTokenizer(input);        try{            if(tmp.countTokens()!=2){throw new BadCommandException();}            if(!scanner.next().equals("batch")){throw new BadCommandException();}                success = true;        }        catch (BadCommandException e){}    }    /**     * 执行命令的方法,如果命令执行不成功,抛出异常     * @return 返回成功与否     */    public boolean Execute(){        if(success)        {            filename = scanner.next();            try{                    fileinput = new BufferedReader(new FileReader(filename));                    command = fileinput.readLine();                    while(command!=null)                    {                        System.out.println("Processing:"+command);                        command.toLowerCase();                        StringTokenizer stringtoken = new StringTokenizer(command);                        String temp=stringtoken.nextToken();                        Command com = CommandFactory.factory(temp);                        if(com==null)                        {                            command = fileinput.readLine();                            continue;                        }                        com.parse(command);                        success = com.Execute();                        if(success)                        {                            System.out.println("success to "+temp+"!");                        }                        else {System.out.println("Fail to "+temp+"!");}                        show.ToShow(com.ToString());                        command = fileinput.readLine();                    }                }            catch (FileNotFoundException e){new IOAndFileException(e);}            catch (IOException e){new IOAndFileException(e); }            }        return success;    }                /**     * 打印方法     * @return 结果字符串     */    public String ToString()    {        return "";    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?