Package chinastock.data.TDX

Source Code of chinastock.data.TDX.ShareNumberReader

package chinastock.data.TDX;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;

import chinastock.GlobalConfig;
import chinastock.datatype.ShareNumberRecord;
import chinastock.helper.MiscHelper;
import datatype.MyDate;

public class ShareNumberReader {
 
  public static String SH_F10=GlobalConfig.SH_F10;
  public static String SZ_F10=GlobalConfig.SZ_F10;
 
  public static String myF10=GlobalConfig.myF10;

  static String ShareNumberSep="��";
 
 
  public static void readAndStrore()
  {
    try
    {
      readAndStrore0();
    }catch(Exception e)
    {
      e.printStackTrace();
    }
  }
  public static void readAndStrore0() throws Exception
  {
    File shFile=new File(SH_F10);
    File szFile=new File(SZ_F10);
    for(File f:shFile.listFiles())
    {
      String name=f.getName();
      name=name.substring(0,name.length()-".txt".length());
      String des=myF10+File.separator+"sh"+name;
     
      System.out.println(des);
     
      BufferedWriter w=new BufferedWriter(new FileWriter(des));
      w.write(" Date  totalNumber  circulateNumber\n");
      for(ShareNumberRecord snr:read(f))
      {
        w.write(snr+"\n");
      }
      w.close();
    }
    for(File f:szFile.listFiles())
    {
      String name=f.getName();
      name=name.substring(0,name.length()-".txt".length());
      String des=myF10+File.separator+"sz"+name;
     
      System.out.println(des);
     
      BufferedWriter w=new BufferedWriter(new FileWriter(des));
      w.write(" Date  totalNumber  circulateNumber\n");
      for(ShareNumberRecord snr:read(f))
      {
        w.write(snr+"\n");
      }
      w.close();
    }
  }
 
  public static List<ShareNumberRecord> read(File f)
  {
    List<ShareNumberRecord> r=new ArrayList<ShareNumberRecord>();
    try
    {
      r=read0(f);
    }catch(Exception e)
    {
      e.printStackTrace();
    }
    return r;
  }
  public static List<ShareNumberRecord> read0(File f) throws Exception
  {
   
    List<String> list=new ArrayList<String>();
    BufferedReader r=new BufferedReader(new InputStreamReader(new FileInputStream(f)));
    String s=r.readLine();
    while(s!=null)
    {
      boolean ret=false;
      if(s.contains("���ιɱ����״��"))
      {
        String ns=r.readLine();
        while(!ns.contains("�ܹɱ�����Ĺ�˾"))
        {
          list.add(ns);
          ns=r.readLine();
        }

        ret=true;
        break;
      }
      if(ret)
        break;
      s=r.readLine();
    }
    r.close();
   
    for(int i=0;i<list.size();i++)
    {
      String line=list.get(i);
      if(StringUtils.isBlank(line))
      {
        list.remove(i);
        i--;
      }else
      {
        String[] arr=StringUtils.split(line,ShareNumberSep);
        String[] arr2=StringUtils.split(arr[0],"- ");
        if(!
          (arr2.length==3&&MiscHelper.isNumberString(arr2[0])&&MiscHelper.isNumberString(arr2[1])&&MiscHelper.isNumberString(arr[2])
          &&arr.length>=4&&MiscHelper.isNumberString(arr[1])&&MiscHelper.isNumberString(arr[2])&&MiscHelper.isNumberString(arr[3]))
            )
        {
          list.remove(i);
          i--;
        }
       
      }

    }
   
   
    List<ShareNumberRecord> result=new ArrayList<ShareNumberRecord>();
    for(int i=0;i<list.size();i++)
    {
      String line=list.get(i);
      if(StringUtils.isBlank(line))
        continue;
      String[] arr=StringUtils.split(line,ShareNumberSep);
      for(int j=0;j<arr.length;j++)
        arr[j]=arr[j].trim();
      try
      {
       
        if(MiscHelper.isNumberString(arr[3]))
        {
          MyDate d=MyDate.parse(arr[0],"-");
          ShareNumberRecord snr=new ShareNumberRecord(d,Long.parseLong(arr[1]),Long.parseLong(arr[3]));
          result.add(snr);
         
        }
       
       
      }catch(Exception e)
      {
        System.out.println(e+"\nline="+line);
      }
    }
   
 
    return result;
     
  }
 
 
  public static void main(String[] args)
  {
     readAndStrore();
  }
 
 

}
TOP

Related Classes of chinastock.data.TDX.ShareNumberReader

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.