黑马程序员技术交流社区
标题:
见了鬼了,Property 装载不了啊,大神来帮下忙。
[打印本页]
作者:
sven556677
时间:
2015-8-20 10:09
标题:
见了鬼了,Property 装载不了啊,大神来帮下忙。
那个用Properties实现软件计数器的功能。开始调的很好的,后面一加try catch finally的close就不行了,Property装载不了Reader了。
代码如下:
package com.cn.filedemo;
import java.io.*;
import java.util.Properties;
public class UseCountByProperties {
public static void main(String[] args) {
FileReader fr = null;
FileWriter fw = null;
try {
int count = 0;// 计数器为0
File myfile = new File("countReader.ini");// 建立文件
if (!myfile.exists()) {
myfile.createNewFile();
}
fr = new FileReader(myfile);
fw = new FileWriter(myfile);
Properties prop = new Properties();
prop.load(fr);// Properties装载这个文件
prop.list(System.out);
String value = prop.getProperty("time");// 取出值
System.out.println(value);
if (value!= null) {
count = Integer.parseInt(value);
}// 做下判断,不为空就转成count
if (count > 5) {// 超过使用次数就提醒
System.out.println("交钱");
return;
}
System.out.println("使用次数"+count);
count++;// 用这次就++
prop.setProperty("time", count+"");// 存储
prop.store(fw, "计数");// 写入
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fr != null)
fr.close();
} catch (Exception e2) {
e2.printStackTrace();
}
try {
if (fw != null)
fw.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
复制代码
我新建了个简易的,load的很好啊
package com.cn.filedemo;
import java.util.Properties;
import java.io.*;
public class tesst1 {
public static void main(String[] args) throws IOException {
Properties p=new Properties();
FileReader fr=new FileReader("countReader.ini");
p.load(fr);
p.list(System.out);
}
}
复制代码
作者:
sven556677
时间:
2015-8-20 10:11
编译没有问题,但结果是property没读到。
查来查去第19行有问题。
作者:
kevin986745
时间:
2015-8-20 10:19
路过,看看,学习了
作者:
sven556677
时间:
2015-8-20 10:34
把初始化调整了一下位置就好了,不知道什么原因。
弄了半上午,唉~~~、
这是调整后的代码,大神们知道原因的望告知。
package com.cn.filedemo;
import java.io.*;
import java.util.Properties;
/**
* 有问题,19行装载不了
* @author Administrator
*
*/
public class UseCountByProperties {
public static void main(String[] args){
FileReader fr = null;
FileWriter fw = null;
try {
int count = 0;// 计数器为0
File myfile = new File("countReader.ini");// 建立文件
if (!myfile.exists()) {
myfile.createNewFile();
}
fr = new FileReader(myfile);//要用了才初始化,与下面的fw一样,这是为什么呢?????????
Properties prop = new Properties();
prop.load(fr);
prop.list(System.out);
String value = prop.getProperty("time");// 取出值
System.out.println(value);
if (value!= null) {
count = Integer.parseInt(value);
}// 做下判断,不为空就转成count
if (count > 5) {// 超过使用次数就提醒
System.out.println("交钱");
return;
}
System.out.println("使用次数"+count);
count++;// 用这次就++
prop.setProperty("time", count+"");// 存储
fw = new FileWriter(myfile);
prop.store(fw, "计数");// 写入
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (fr != null)
fr.close();
} catch (Exception e2) {
e2.printStackTrace();
}
try {
if (fw != null)
fw.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2