java编译运行引用外部jar包读取json文件

//HanPengNewAndOldServerGoodsTypeSpendCoin.java
//

import java.util.HashMap;

import java.util.Date;
import java.util.Calendar;
import java.util.ArrayList;
import java.util.Iterator;
import java.text.SimpleDateFormat;

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;//使用jason文件

public class HanPengNewAndOldServerGoodsTypeSpendCoin{
    private static String createDate(){
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        cal.add(Calendar.DATE,-1);
        String date = sdf.format(cal.getTime());
        return date;
    }
    //@SuppressWarnings("unchecked")
    private static JSONArray getSerList(File FileSer) throws Exception{
        BufferedReader br = new BufferedReader(new FileReader(FileSer));
        String temp = null;
        JSONArray serlist=null;
        while((temp=br.readLine())!=null){
            //ArrayList<String> serlist = new ArrayList<String>(JSONArray.fromObject(temp));
            serlist = JSONArray.fromObject(temp);
            //System.out.println(serlist.toString());
        }
        System.out.println(serlist.toString());
        return serlist;
    }
    private static void outPutMain(File FileSpend, JSONArray SerList, File FileOut, String Date) throws Exception{
        String temp = null;
        BufferedReader br = new BufferedReader(new FileReader(FileSpend));
        HashMap<String, HashMap<String, Integer>> serTypeCoin = new HashMap<String, HashMap<String, Integer>>();
        while((temp=br.readLine())!=null){
            String [] line = temp.split("\t");
            String uid = line[1];
            //String str = "123456789";
            String ser = uid.substring(0,uid.length()-7);
            int coin = Integer.parseInt(line[4]);
            String goods = line[7];
            //System.out.println(ser);
            //if (SerList.contains(ser)){
            //    System.out.println();
            //}
            String type = (SerList.contains(ser))?"old":"new";
            if (uid.substring(0,1).equals("g")){
                //使用嵌套字典
                if(serTypeCoin.get(type)==null){
                    HashMap<String, Integer> hm = new HashMap<String, Integer>();
                    hm.put(goods, coin);
                    //serTypeCoin.put(type,new HashMap<Sring, Integer>(){put(goods, coin);})
                    serTypeCoin.put(type, hm);
                }else{
                    if(serTypeCoin.get(type).get(goods)==null){
                        serTypeCoin.get(type).put(goods, coin);
                    }else{
                        serTypeCoin.get(type).put(goods, serTypeCoin.get(type).get(goods)+coin);
                    }
                }
            }
        }
        if(!FileOut.exists())
            FileOut.createNewFile();
        FileOutputStream out = new FileOutputStream(FileOut, true);
        Iterator it = serTypeCoin.keySet().iterator();
        while(it.hasNext()){
            String type = (String) it.next();
            HashMap<String, Integer> hm = (HashMap<String, Integer>) serTypeCoin.get(type);
            Iterator <String> hmit = hm.keySet().iterator();
            while(hmit.hasNext()){
                String goods = hmit.next();
                int coin = hm.get(goods);
                StringBuffer sb = new StringBuffer();
                sb.append(Date+"\t"+type+"\t"+goods+"\t"+coin+"\n");
                //System.out.println(Date+"\t"+type+"\t"+goods+"\t"+coin);
                out.write(sb.toString().getBytes("utf-8"));
            }
            System.out.println(type+":"+ serTypeCoin.get(type).size());
        }
    }
    public static void main(String[] args) throws Exception{
        String date = (args.length>=1)? args[0]:(createDate());

        String superhero = "/home/data/superhero/";
        String spendlogpath = superhero+"spendlog/";
        String visopath = superhero+"viso_config/";
        String outpath = superhero+"wang/result/";

        String spendlogname =  "spendlog_"+date;
        String visoser = "pub_ser_list_"+date;
        String outname = "new_and_old_server_goodstype_spend_coin_"+date;

        System.out.println(date);

        File filespend = new File(spendlogpath+spendlogname);
        File fileser = new File(visopath+visoser);
        File fileout = new File(outpath+outname);

        JSONArray serList = getSerList(fileser);
        outPutMain(filespend, serList, fileout, date);
    }
}


在linux 环境下且需要引入外部jar包时进行编译代码的命令范例:

javac -classpath /home/data/superhero/wang/myjlib/json-lib-2.4-jdk15.jar \ HanPengNewAndOldServerGoodsTypeSpendCoin.java

编译后运行java的命令范例为:

java -Djava.ext.dirs=/home/data/superhero/wang/myjlib HanPengNewAndOldServerGoodsTypeSpendCoin

注:  参数    -Djava.ext.dirs=/目录  只在 jdk 1.6版本之后的才可用。 其中   目录,如范例中 \ /home/data/superhero/wang/myjlib 为存放外部jar 包的地址。




















你可能感兴趣的:(java,json,jar包)