⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filecatalogloader.java

📁 java的一个gui工程示例
💻 JAVA
字号:
import java.io.*;
import java.io.*;
import java.util.StringTokenizer;




/**
 * 实现了CatalogLoader接口 用来读取FlightDB和ClientDB 创建FlightDB和ClientDB实例并返回
 * @author 魏亮 王健 王梦雄 吴进
 * @see CatalogLoader
 * @version 1.0.0.2
 * @since 19/1/2008
 * 
 */
public class FileCatalogLoader
    implements CatalogLoader {
	/**
	 * client记录的头部
	 */
    private static final String CLIENT_PREFIX = "client";
    /**
     *  VIPclient记录的头部
     */
    private static final String VIPCLIENT_PREFIX = "VIPclient";
    /**
     * 分隔符
     */
    private static final String DELIM = "_";
	/**
	 * 默认构造
	 */
    public FileCatalogLoader() {
    	
    }
    

/**
 * 该方法从文件读取到FlightDB 并将其返回
 * @param s
 * @return flightDB - FLIFHTDB实例
 * @throws FileNotFoundException
 * @throws IOException
 * @throws DataFormatException
 */
    public  FlightDB loadFlightDB(String s)
        throws FileNotFoundException, IOException, DataFormatException {
        FlightDB flightdb = new FlightDB();
        BufferedReader bufferedreader = new BufferedReader(new FileReader(s));
        for(String s1 = bufferedreader.readLine(); s1 != null; s1 = bufferedreader.readLine()){
            Object obj = null;
            obj = readFlightItem(s1);
            flightdb.addItem(((FlightItem) (obj)));
        }

        return flightdb;
    }
    
    
/**
 * 该方法从文件读取到ClientDB 并将其返回
 * @param s
 * @return
 * @throws FileNotFoundException
 * @throws IOException
 * @throws DataFormatException
 */
    public ClientDB loadClientDB(String s)
    	throws FileNotFoundException, IOException, DataFormatException {
	    ClientDB clientdb = new ClientDB();
	    BufferedReader bufferedreader = new BufferedReader(new FileReader(s));
	    for(String s1 = bufferedreader.readLine(); s1 != null; s1 = bufferedreader.readLine()){
	    	Object obj = null;
	    	if(s1.startsWith(CLIENT_PREFIX)){
	    		obj = readClient(s1);
	    		clientdb.addClientItem(((Client) (obj)));
	    	} else if(s1.startsWith(VIPCLIENT_PREFIX)) {
	    		obj = readVIPClient(s1);
	    		clientdb.addVIPItem((VIPClient)obj);
	    	} else {
	    		throw new DataFormatException(s1);
	    	}

	    	
    }

    return clientdb;
}

/**
 * 读取FlightItem一行内容 实实例化一个FlightItem对象并返回
 * @param s
 * @return FlightItem实例
 * @throws DataFormatException
 */
    private FlightItem readFlightItem(String s)
        throws DataFormatException {
        StringTokenizer stringtokenizer;
        stringtokenizer = new StringTokenizer(s, DELIM);
        if(stringtokenizer.countTokens() != 16) {
            throw new DataFormatException(s);
        } else {
        	try {
        	     return new FlightItem(stringtokenizer.nextToken(), stringtokenizer.nextToken(), 
        	    		 stringtokenizer.nextToken(), stringtokenizer.nextToken(), Integer.parseInt(stringtokenizer.nextToken()), 
        	    		 new Cabin(Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
        	    		 Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
        	    		 Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()),
        	    		 Double.parseDouble(stringtokenizer.nextToken()), Double.parseDouble(stringtokenizer.nextToken()), Double.parseDouble(stringtokenizer.nextToken())));
        	} catch(NumberFormatException numberformatexception) {
        		 throw new DataFormatException(s);
        	}
        }     
    }
    /**
     * 读取Client一行内容 实实例化一个Client对象并返回
     * @param s
     * @return Client实例
     * @throws DataFormatException
     */
    private Client readClient(String s)
    	throws DataFormatException {
    	StringTokenizer stringtokenizer;
    	stringtokenizer = new StringTokenizer(s, DELIM);
    	if(stringtokenizer.countTokens() != 23 && stringtokenizer.countTokens() !=5) {
    		throw new DataFormatException(s);
    	} else {
    	     if(stringtokenizer.countTokens() ==23){
			    		try {
			    			String str = stringtokenizer.nextToken();
			    	        return new Client(stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(),
			    	        		stringtokenizer.nextToken(), stringtokenizer.nextToken(), Double.parseDouble(stringtokenizer.nextToken()),
			    	        		new FlightItem(stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(),
			    	        		Integer.parseInt(stringtokenizer.nextToken()), new Cabin(Integer.parseInt(stringtokenizer.nextToken()),
			    	        		Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
			    	        		Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
			    	        		Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
			    	        		Integer.parseInt(stringtokenizer.nextToken()), Double.parseDouble(stringtokenizer.nextToken()), 
			    	        		Double.parseDouble(stringtokenizer.nextToken()), Double.parseDouble(stringtokenizer.nextToken()))));
			    		} catch(NumberFormatException numberformatexception) {
			    			throw new DataFormatException(s);
			    		}
			  }
    	     else if(stringtokenizer.countTokens()==5){
    	    	 try {
		    			String str = stringtokenizer.nextToken();
		    	        return new Client(stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(),
		    	        		stringtokenizer.nextToken());
		    		} catch(NumberFormatException numberformatexception) {
		    			throw new DataFormatException(s);
		    		}
    	    	 
    	     }
    	}
		return null;  
    }

/**
 * 该方法读取VIPClient一行内容 实实例化一个VIPClient对象并返回
 * @param s
 * @return VIPClient
 * @throws DataFormatException
 */    
    private VIPClient readVIPClient(String s)
    	throws DataFormatException {
    	StringTokenizer stringtokenizer;
    	stringtokenizer = new StringTokenizer(s, DELIM);
    	if(stringtokenizer.countTokens() != 24 && stringtokenizer.countTokens() != 5) {
    		throw new DataFormatException(s);
    	} else {
		    	if(stringtokenizer.countTokens() == 24){
    				try {
		    			String str = stringtokenizer.nextToken();
		    			return new VIPClient(stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(),
		    	        		stringtokenizer.nextToken(), stringtokenizer.nextToken(),
		    	        		Double.parseDouble(stringtokenizer.nextToken()),  Integer.parseInt(stringtokenizer.nextToken()),
		    	        		new FlightItem(stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(),
		    	        		Integer.parseInt(stringtokenizer.nextToken()), new Cabin(Integer.parseInt(stringtokenizer.nextToken()),
		    	        		Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
		    	        		Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
		    	        		Integer.parseInt(stringtokenizer.nextToken()), Integer.parseInt(stringtokenizer.nextToken()), 
		    	        		Integer.parseInt(stringtokenizer.nextToken()), Double.parseDouble(stringtokenizer.nextToken()), 
		    	        		Double.parseDouble(stringtokenizer.nextToken()), Double.parseDouble(stringtokenizer.nextToken()))));
		    		} catch(NumberFormatException numberformatexception) {
		    			throw new DataFormatException(s);
		    		}
		    	}else if(stringtokenizer.countTokens() ==5){
		    		
		    		 try {
			    			String str = stringtokenizer.nextToken();
			    	        return new VIPClient(stringtokenizer.nextToken(), stringtokenizer.nextToken(), stringtokenizer.nextToken(),
			    	        		stringtokenizer.nextToken());
			    		} catch(NumberFormatException numberformatexception) {
			    			throw new DataFormatException(s);
			    		}
		    		
		    	}
    	}
		return null;
    }
}



⌨️ 快捷键说明

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