黑马程序员技术交流社区
标题:
关于Properties的问题,想了很久,希望大家帮帮忙!
[打印本页]
作者:
Porsche911
时间:
2014-6-4 20:13
标题:
关于Properties的问题,想了很久,希望大家帮帮忙!
本帖最后由 Porsche911 于 2014-6-5 15:27 编辑
import java.io.*;
import java.util.*;
class RunCount
{
public static void main(String[] args) throws IOException
{
Properties prop = new Properties();
File file = new File("count.ini");
if(!file.exists())
file.createNewFile();
FileInputStream fis = new FileInputStream(file);
prop.load(fis);
int count = 0;
String value = prop.getProperty("time");
if(value!=null)
{
count = Integer.parseInt(value);
if(count>=5)
{
System.out.println("您好,使用次数已到,拿钱!");
return ;
}
}
count++;
prop.setProperty("time",count+"");
FileOutputStream fos = new FileOutputStream(file);
prop.store(fos,"");
fos.close();
fis.close();
}
}
复制代码
上面这段代码是毕老师的原码。但是,如果把
FileOutputStream fos = new FileOutputStream(file);这个代码写到
FileInputStream fis = new FileInputStream(file);后面,换句话说两句话连着写的话,即使不断重复运行程序,计数器一直是1,而不会自增这是为什么啊?
作者:
返璞归真
时间:
2014-11-15 13:38
我认为是这样的,FileOutputStream fos = new FileOutputStream(file);
这个语句在执行时,如果文件“file”不存在,就会创建该文件,如果存在会覆盖原文件“file”。
所以每次由于properties文件的value值默认为0,经过加1后存储到“file”中,所以每次都是存储的1。
修正:FileOutputStream fos = new FileOutputStream(file,true);这样加到FileinputStream后就可以了,
第二个参数置为true,他就不会创建新文件,而是在原文件后继续写入。(但配置文件内容会变多)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2