• File类的使用


    熟练的使用关于流的这些类是非常有必要的,因为能够大大减少重复代码的编写工作量。

      1 package com.sinosoft.lis.bjbs.tasks.zhaoyongqiang;
      2 
      3 import java.io.BufferedReader;
      4 import java.io.File;
      5 import java.io.FileInputStream;
      6 import java.io.FileNotFoundException;
      7 import java.io.IOException;
      8 import java.io.InputStreamReader;
      9 import java.io.UnsupportedEncodingException;
     10 
     11 import com.f1j.chart.sp;
     12 import com.sinosoft.lis.pubfun.PubFun;
     13 
     14 /**
     15  * 练习使用File类
     16  * 
     17  * @author maye
     18  * 
     19  */
     20 public class FilePractise {
     21     private String mCurrentDate = PubFun.getCurrentDate();
     22     private String mCurrentTime = PubFun.getCurrentTime();
     23 
     24     /**
     25      * 根据java实体类,生成对应的sql语句, 如果实体类中Date类型,自动转换成系统的当前日期 String filePath :实体类文件的路径
     26      * 介绍:为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。
     27      * BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度
     28      * InputStreamReader类是从字节流到字符流的桥接器:它使用指定的字符集读取字节并将它们解码为字符
     29      * FileInputStream流被称为文件字节输入流,意思指对文件数据以字节的形式进行读取操作如读取图片视频等
     30      */
     31     private void makeSQL(String filePath) {
     32         File tFile = new File(filePath);
     33         BufferedReader tBufferedReader = null;
     34         try {
     35             tBufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(tFile), "UTF-8"));// 这里要抛出异常
     36             String message = "";
     37             String mStr = "";
     38             StringBuffer tStringBuffer = new StringBuffer();
     39             tStringBuffer.append(" select ");
     40             while (true) {
     41                 message = tBufferedReader.readLine();// 这里也要抛出异常
     42                 if (message.contains("private")) {
     43                     String tDataType = message.trim().split("\\s+")[1].replace(";", ""); // 注意:\\s表示的以空格进行划分
     44                     if ("Date".equals(tDataType)) {
     45                         mStr = "'\"+mCurrentDate+\"',";
     46 
     47                     } else {
     48                         mStr = "'1',";
     49                     }
     50                     tStringBuffer.append(mStr);
     51                 }
     52                 if (message.contains("数据库表的字段个数")) {
     53                     break;
     54                 }
     55 
     56             }
     57             tStringBuffer.deleteCharAt(tStringBuffer.length() - 1);// 删除最后拼接上去的逗号
     58             tStringBuffer.append(" from dual");
     59             System.out.println(tStringBuffer.toString());
     60             System.out.println("@@@@@@" + tStringBuffer.toString());
     61         } catch (UnsupportedEncodingException e) {
     62             // TODO Auto-generated catch block
     63             e.printStackTrace();
     64         } catch (FileNotFoundException e) {
     65             // TODO Auto-generated catch block
     66             e.printStackTrace();
     67         } catch (IOException e) {
     68             // TODO Auto-generated catch block
     69             e.printStackTrace();
     70         }
     71     }
     72 
     73     /**
     74      * 根据Schema生成依附SSRS的Set代码
     75      * 
     76      * @param filePath
     77      *            schema文件的路径
     78      */
     79     private void makeCode(String filePath) {
     80 
     81         File tFile = new File(filePath);
     82         String tFileName = filePath.substring(filePath.lastIndexOf("\\") + 1, filePath.indexOf(".java"));
     83         BufferedReader tBufferReader = null;
     84 
     85         try {
     86             tBufferReader = new BufferedReader(new InputStreamReader(new FileInputStream(tFile), "UTF-8"));// 需要抛出异常
     87             String message = "";
     88             int tIndex = 1;
     89             String tString = "";
     90             while (true) {
     91                 message = tBufferReader.readLine();// 一行一行的读取文件中的内容
     92                 if (message.contains("private")) {
     93                     String tFieldName = message.trim().split("\\s+")[2].replace(";", "");// 类似于:private
     94                                                                                             // String
     95                                                                                             // contNo;
     96                                                                                             // 获取的是conNo
     97                     tString = "tSSRS.GetText(i," + tIndex + ")";
     98                     System.out.println("t" + tFileName + ".set" + tFieldName + "(" + tString + ");");
     99                     tIndex++;
    100                 }
    101                 if (message.contains("数据库表的字段个数")) {
    102                     break;
    103                 }
    104             }
    105         } catch (UnsupportedEncodingException e) {
    106             // TODO Auto-generated catch block
    107             e.printStackTrace();
    108         } catch (FileNotFoundException e) {
    109             // TODO Auto-generated catch block
    110             e.printStackTrace();
    111         } catch (IOException e) {
    112             // TODO Auto-generated catch block
    113             e.printStackTrace();
    114         }
    115     }
    116 
    117     public static void main(String[] args) {
    118         // String str="aaa  sss   bbb";
    119         // String replace = str.trim().split("\\a+")[1].replace("a", "");
    120         // System.out.println(">>>>>>>>>>>>"+replace);
    121         // String string="11|22||";
    122         // String[] split = string.split("\\|");
    123         // for(int i=0;i<split.length;i++){
    124         // System.out.println("数组中的参数分别是:"+split[i]+"-");
    125         // }
    126         // System.out.println("数组的长度是:"+split.length);
    127         // String str="private String contNo";
    128         // String replace = str.trim().split("\\s+")[1].replace(";", "");
    129         // String[] split = str.trim().split("\\s+");
    130         // for(int i=0;i<split.length;i++){
    131         // System.out.println("数组中的参数分别是:"+split[i]+"-");
    132         // }
    133         // System.out.println("下标为1的参数是:"+split[1].replace(";", ""));
    134         // System.out.println(">>>>>>>>>"+replace);
    135         // System.out.println("\\s+");
    136         //
    137 
    138         /*
    139          * new
    140          * FilePractise().makeSQL("C:\\yangguang\\source\\gbs\\sinosoft-lis\\" +
    141          * "sinosoft-lis-schema\\src\\main\\java\\com\\sinosoft\\lis\\schema\\"
    142          * + "T_CIS_BLAENT_BACKTRACKSchema.java");
    143          */
    144         new FilePractise().makeCode("C:\\yangguang\\source\\gbs\\sinosoft-lis\\" + "sinosoft-lis-schema\\src\\main\\java\\com\\sinosoft\\lis\\schema\\" + "T_CIS_BLAENT_BACKTRACKSchema.java");
    145 
    146     }
    147 }

     最终的运行结果:

     1 tT_CIS_BLAENT_BACKTRACKSchema.setBackid(tSSRS.GetText(i,1));
     2 tT_CIS_BLAENT_BACKTRACKSchema.setEntityid(tSSRS.GetText(i,2));
     3 tT_CIS_BLAENT_BACKTRACKSchema.setName(tSSRS.GetText(i,3));
     4 tT_CIS_BLAENT_BACKTRACKSchema.setIdtype(tSSRS.GetText(i,4));
     5 tT_CIS_BLAENT_BACKTRACKSchema.setIdno(tSSRS.GetText(i,5));
     6 tT_CIS_BLAENT_BACKTRACKSchema.setAppntno(tSSRS.GetText(i,6));
     7 tT_CIS_BLAENT_BACKTRACKSchema.setAppntname(tSSRS.GetText(i,7));
     8 tT_CIS_BLAENT_BACKTRACKSchema.setAppntidtype(tSSRS.GetText(i,8));
     9 tT_CIS_BLAENT_BACKTRACKSchema.setAppntidno(tSSRS.GetText(i,9));
    10 tT_CIS_BLAENT_BACKTRACKSchema.setCoretype(tSSRS.GetText(i,10));
    11 tT_CIS_BLAENT_BACKTRACKSchema.setDatasources(tSSRS.GetText(i,11));
    12 tT_CIS_BLAENT_BACKTRACKSchema.setBacker(tSSRS.GetText(i,12));
    13 tT_CIS_BLAENT_BACKTRACKSchema.setBacktime(tSSRS.GetText(i,13));
    14 tT_CIS_BLAENT_BACKTRACKSchema.setChecker(tSSRS.GetText(i,14));
    15 tT_CIS_BLAENT_BACKTRACKSchema.setChecktime(tSSRS.GetText(i,15));
    16 tT_CIS_BLAENT_BACKTRACKSchema.setCheckflag(tSSRS.GetText(i,16));
    17 tT_CIS_BLAENT_BACKTRACKSchema.setCheckresult(tSSRS.GetText(i,17));
    18 tT_CIS_BLAENT_BACKTRACKSchema.setSpare1(tSSRS.GetText(i,18));
    19 tT_CIS_BLAENT_BACKTRACKSchema.setSpare2(tSSRS.GetText(i,19));
  • 相关阅读:
    如何隐藏DLL中,导出函数的名称?
    排序算法之0-1、0-1-2排序
    在Vista以上版本运行WTL程序,有时候会提示“这个程序可能安装补正确...”的错误
    编码格式(未完待续......)
    WinDbg分析DUMP文件
    自己捣鼓了一个12306抢票软件,欢迎大家使用,并讨论改进方法!
    Cocos2D-X扫盲之坐标系、锚点
    Spring核心组件剖析
    走进Java中的持有对象(容器类)【二】Collection
    走进JVM【二】理解JVM内存区域
  • 原文地址:https://www.cnblogs.com/dongyaotou/p/11460147.html
Copyright © 2020-2023  润新知