看过基础视频的应该都记得那个“限制软件试用期限”的小程序。程序是这样的:
import java.io.*;
import java.util.*;
class Test
{
public static void main(String args [])
{
try
{
getRunCount();
}
catch (IOException e)
{
throw new RuntimeException("程序出现异常");
}
}
public static void getRunCount() throws IOException
{
Properties prop = new Properties();
File propFile = new File("times.ini");
if(!propFile.exists())
propFile.createNewFile();
FileInputStream fis = new FileInputStream(propFile);
prop.load(fis);
String value = prop.getProperty("time");
int count = 0;
if(value!=null)
count=Integer.parseInt(value);
if(count>=5)
{
System.out.println("使用日期已到,给钱!");
return;
}
count++;
prop.setProperty("time", count+"");
FileOutputStream fos = new FileOutputStream(propFile);
prop.store(fos, "list");
fis.close();
fos.close();
}
}
然而,当后来复习时,自己写过这个程序,代码如下:
import java.io.*;
import java.util.*;
class Test151
{
public static void main(String args [])
{
try
{
getRunCount();
}
catch (IOException e)
{
throw new RuntimeException("程序出现异常");
}
}
public static void getRunCount() throws IOException
{
Properties prop = new Properties();
File propFile = new File("info.ini");
if(!propFile.exists())
propFile.createNewFile();
FileInputStream fis = new FileInputStream(propFile);
FileOutputStream fos = new FileOutputStream(propFile);
prop.load(fis);
String value = prop.getProperty("time");
int count = 0;
if(value!=null)
count=Integer.parseInt(value);
if(count>=5)
{
System.out.println("试用期限已到,否则电脑炸掉!");
return;
}
count++;
prop.setProperty("time", count+"");
prop.store(fos, "list");
fis.close();
fos.close();
}
}
仔细观察代码,只有一处不同,就是输出流定义的位置不同。但就是这一处不同导致上面的程序运行正常,而下面的程序代码
无法正常运行,文件中time的值始终为1。不知为什么,请教。
|