是通过对文件的读写完成的吧?
有几个需要注意的地方:
1、同步问题:读文件时需要加上关键字:synchronized
2、读数时转化为long型,利用readline来读
其它的就看你程序是不是对了。
怎么会到1000就变成零呢?莫非你用的是byte类型?!
有几个需要注意的地方:
1、同步问题:读文件时需要加上关键字:synchronized
2、读数时转化为long型,利用readline来读
其它的就看你程序是不是对了。
怎么会到1000就变成零呢?莫非你用的是byte类型?!
<%@ page import="java.lang.*" %>
<%@ page contentType="text/html;charset=gb2312" %><% String readStr="";
int writeInt=1;
String countFile=application.getRealPath("counter/count");
BufferedReader file=new BufferedReader(new FileReader(countFile));
try
{readStr=file.readLine();}
catch (IOException e)
{System.out.println("读取计数文件出错!");} if (readStr==null)
readStr="0";
else
writeInt=java.lang.Integer.parseInt(readStr)+1;//判断cookie,刷新时不写入计数文件
if (request.getHeader("Cookie")==null)
{try
{PrintWriter pw=new PrintWriter(new FileOutputStream(countFile));
pw.println(writeInt);
pw.close();}
catch (IOException e)
{System.out.println(e.getMessage());}
}
else
{writeInt=java.lang.Integer.parseInt(readStr)-1;
readStr=java.lang.String.valueOf(writeInt);} //把计数转化为图形,不足8位的前面补零
int i=0;
int k=8-readStr.length();
String szOut="";
for (i=0;i<k;i++) szOut=szOut+"<img src='counter/0.gif'>";
for (i=0;i<readStr.length();i++) szOut=szOut+"<img src='counter/"+readStr.charAt(i)+".gif'>";
%> <table width="200" height="27" align="center" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="center"><%out.print(szOut);%></td>
</tr>
</table>