使用java的唯一标识号生成器

时间:2017-05-16 17:43:31

标签: java

我正在尝试使用文件编写器和读取器创建一个带有java的uid生成器我希望它生成带有序列1然后是2然后3等的id。上。但它无法正常工作我想将其存储在文件中,以便在程序重新启动时从最后结束的数字开始。这是我的代码

import java.io.*;                                                      
import java.util.*;                                                    
import java.text.*;                                                     
class java{
static void main()throws IOException{try{
    Scanner in=new Scanner(System.in);
    String s=null;
    File f =new File("C:\\DMCH\\U.IDN");
    if(!f.exists()){
        f.mkdirs();}
        else
        System.out.print("");
      File file =new File("C:\\DMCH\\U.IDN\\uid.txt");
      if(!file.exists()){
        file.createNewFile();}
        else
        System.out.print("");
        DateFormat uid=new SimpleDateFormat("dMyy",Locale.US);
        s=uid.format(new Date())+"00";
        Writer fo=new FileWriter("C:\\DMCH\\U.IDN\\uid.txt");
        fo.write(s);
        fo.close();
        System.out.println(s);
        FileInputStream fi =new FileInputStream("C:\\DMCH\\U.IDN\\uid.txt");
        BufferedReader br=new BufferedReader(new InputStreamReader(fi));
        String st=null,tmp;
        while((tmp=br.readLine())!=null){
           st=tmp;
        }
        fi.close();
        long i=Long.valueOf(st)+1;
        System.out.println("Enter getuid to get uid");
        String str=in.next();
        if(str.equals("getuid"))
        {
            System.out.println(i);
        }
         Writer foo=new FileWriter("C:\\DMCH\\U.IDN\\uid.txt");
        foo.write(Long.toString(i));
        foo.close();
}catch(NumberFormatException n){}                                           
} 
}

我希望它生成uid为:
17051701个
然后
17051702个
所以。上。
我希望它在重新启动程序后从最后结束点开始 例如,在上述案例中,程序必须将下一个uid作为:
17051703.

1 个答案:

答案 0 :(得分:0)

我想你想要这个。另一次当你提出问题时,你应该把你的代码。然后其他人可以更好地了解你想要的东西。

public static void main( String[] args ) {

    try {
        int fileReader = fileReader();
        System.out.println(fileReader + 1);
        fileWrite(fileReader + 1);
    } catch ( FileNotFoundException e ) {
        e.printStackTrace();
    } catch ( IOException e ) {
        e.printStackTrace();
    }
}

private static int fileReader() throws FileNotFoundException, IOException {

    File f = new File("E:\\yourlocation\\MyFile.txt");
    String value = "0";
    if ( f.exists() ) {
        FileReader reader = new FileReader(f);
        BufferedReader bufferedReader = new BufferedReader(reader);

        String line;
        while ( (line = bufferedReader.readLine()) != null ) {
            value = line;
        }
        reader.close();
    }
    return Integer.parseInt(value);
}

private static void fileWrite( int id ) throws IOException {
    FileWriter writer = new FileWriter("E:\\yourlocation\\MyFile.txt", true);
    writer.write(id + "");
    writer.write("\r\n");   // write new line
    writer.close();
}