黑马程序员技术交流社区
标题:
关于用Properties类来做程序使用次数的记录出现的奇怪现象
[打印本页]
作者:
温水煮青蛙
时间:
2014-5-12 20:50
标题:
关于用Properties类来做程序使用次数的记录出现的奇怪现象
package com.itheima.file;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.Properties;
public class FileDemo2 {
int count=0;
/**
* @param args
*/
public static void main(String[] args) {
int count=0;
File file=new File("E://count.ini");
Properties prop=new Properties();
FileInputStream fis=null;
FileOutputStream fos=null;
if(!(file.exists())){
try {
file.createNewFile();
fis=new FileInputStream(file);
prop.load(fis);
String value=prop.getProperty("count");
if(value!=null){
count=Integer.parseInt(value);
if(count>=5){
System.out.println("使用次数超过五次,请付费后再使用");
return;
}
}
count++;
System.out.println("您是第"+count+"次使用本程序");
prop.setProperty("count", count+"");
fos=new FileOutputStream(file);
prop.store(fos, null);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
if(fis!=null&&fos!=null){
fis.close();
fos.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
这是我写的代码,运行第一次会正常打印您是第1次使用本程序,并在E盘生成count.ini文件。文件保存的键值对为count=1.可是第二次运行时既不报错也不报异常,控制台上显示:<terminated> FileDemo2[Java Application]C:\Program Files\Java\jre6\bin\javaw.exe. 这什么情况啊?
作者:
skill20
时间:
2014-5-12 21:32
路径有点别扭的说。
package cn.itcast.day;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
public class PropertiesTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
count();
}
public static void count(){
File file = new File("d:\\info.ini");
Properties prop = new Properties();
FileInputStream fis = null;
FileOutputStream fos = null;
try {
if(!file.exists())
file.createNewFile();
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.put("time", count+"");
fos = new FileOutputStream(file);
prop.store(fos, "");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
if(fis != null)
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(fos != null)
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
复制代码
作者:
温水煮青蛙
时间:
2014-5-13 08:31
谢谢大神,问题我已经找到了,不是路径的问题,是我把if(!(file.exists())){....}包含所有的代码,导致 只要文件已存在 他就不执行了。所以第一次会成功,以后的都没打印输出
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2