具体是这样:我编了个小程序,想实时读取串口中的数据并且将其显示在TextArea上。当我想在每行数据前加上系统时间再显示时,时间总是显示程序运行时的时间。部分代码:
static Calendar time = Calendar.getInstance();
...
int BufferedWriter out=new BufferedWriter(new FileWriter(file));
while ( (lineInfo=reader.readLine())!= null){ lineInfo="[" + time.getTime() + "] " + lineInfo + "\n";
jTextArea1.insert(lineInfo,pos);
pos=pos+lineInfo.length(); }
static Calendar time = Calendar.getInstance();
...
int BufferedWriter out=new BufferedWriter(new FileWriter(file));
while ( (lineInfo=reader.readLine())!= null){ lineInfo="[" + time.getTime() + "] " + lineInfo + "\n";
jTextArea1.insert(lineInfo,pos);
pos=pos+lineInfo.length(); }
time.setTime(new java.util.Date()); // 加上这么一句
....
那个 Calendar.getInstance() 默认使用初始化时的时间,以后每次使用新的时间,都必须重新设置!
long start=System.currentTimeMillis();
/**待测程序段*/
long end=System.currentTimeMillis();
System.out.println("Time:"+(end-start));楼主试试