zoukankan      html  css  js  c++  java
  • 生成任意长度的有序的数字编码

    package com.yd.bpm.utils;

    import java.io.File;
    import java.util.List;

    public class FileSerialNumber{

    private static String prefix = "6999";

    private FileSerialNumber() {}

    private static FileSerialNumber single=null;

    //静态工厂方法
    public static FileSerialNumber getInstance() {
    if (single == null) {
    single = new FileSerialNumber();
    }
    return single;
    }

    public String getNumber(File file , int start) {

    int num = start;
    synchronized(single){
    if (file.exists()) {
    List<String> list = FileUtil.readList(file);
    num = Integer.parseInt(list.get(0));
    }
    FileUtil.rewrite(file, String.valueOf(num + 1));
    }
    return prefix + num;
    }
    }

    package com.yd.bpm.utils;

    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.math.BigInteger;
    import java.text.Format;
    import java.text.ParseException;
    import java.util.ArrayList;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.List;
    import java.util.Locale;

    public class FileUtil {

    public static void rewrite(File file, String data) {
    BufferedWriter bw = null;
    try {
    bw = new BufferedWriter(new FileWriter(file));
    bw.write(data);
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (bw != null) {
    try {
    bw.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    }

    public static List<String> readList(File file) {
    BufferedReader br = null;
    List<String> data = new ArrayList<String>();
    try {
    br = new BufferedReader(new FileReader(file));
    for (String str = null; (str = br.readLine()) != null;) {
    data.add(str);
    }
    } catch (IOException e) {
    e.printStackTrace();
    } finally {
    if (br != null) {
    try {
    br.close();
    } catch (IOException e) {
    e.printStackTrace();
    }
    }
    }
    return data;
    }
    }

    首先引入上面的两个类,然后调用:

    FileSerialNumber.getInstance().getNumber(new File("e:\duty.txt"),100);

    说明:getNumber这个方法的两个参数第一个是代表本地磁盘路径第二值是有序编码的起始值;如果磁盘路径的文件中存在编码就会根据这个编码有序增加,如果没有就会根据第二个参数的值进行有序增加

  • 相关阅读:
    数据库连接异常
    javaweb登录界面连接数据库
    123 c#调用oracle存储过程返回数据集 --通过oracle存储过程返回数据集
    利用游标返回结果集的的例子(Oracle 存储过程)JAVA调用方法和.NET调用方法
    c#调用oracle存储过程返回数据集
    oracle存储过程
    oracle存储过程和游标的使用
    oracle游标的定义使用
    游标-----内存中的一块区域,存放的是select 的结果
    Oracle 游标使用全解
  • 原文地址:https://www.cnblogs.com/cws-kf/p/8528040.html
Copyright © 2011-2022 走看看