我正在尝试使用文件编写器和读取器创建一个带有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.
答案 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();
}