import java.util.*;
import java.io.*;
public class PropertiesDemo {
public static void main(String[] args) throws IOException {
Properties prop=new Properties();
File files=new File("con.txt");
if(!files.exists()){
files.createNewFile();//为啥不能自动创建文件啊,报错如下
/*
Exception in thread "main" java.io.FileNotFoundException: con.txt (拒绝访问。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
at PropertiesDemo.main(PropertiesDemo.java:12)
 
*/
}

FileInputStream frs=new FileInputStream(files);
prop.load(frs); int count=0;
String s=prop.getProperty("time");
if(s!=null){
count=Integer.parseInt(s);//为啥不能用count=int()s;我记得以前貌似有这样的形式
if(count>=3){
System.out.println("你已超过使用次数");
return;
}
}
count++;
prop.setProperty("time", count+"");//这里count后为啥加上""

FileOutputStream fws=new FileOutputStream(files);
prop.store(fws, "");
frs.close();
fws.close();





}
public static void sop(Object obj){
System.out.println(obj);
}
}

解决方案 »

  1.   

    count=Integer.parseInt(s);//为啥不能用count=int()s;我记得以前貌似有这样的形式
    String类型转换成整形,就是用Integer.parseInt(s),你说的这个我从来没见过prop.setProperty("time", count+"");//这里count后为啥加上""
    加""是让count隐式转换成String类型。至于为什么不能自动创建文件,感觉好像是你的系统的问题
      

  2.   

    问题1.files.createNewFile();//为啥不能自动创建文件啊,报错如下
    java.io.FileNotFoundException: con.txt (拒绝访问。答案1.个人感觉是不是因为你路径写错了?例如你改成D:\\con.txt试试呢?还有,12行是哪个代码?如果是files.createNewFile()那么我感觉就是你路径必须写绝对路径。问题2.count=Integer.parseInt(s);//为啥不能用count=int()s;我记得以前貌似有这样的形式答案2.我从来不知道java里面可以有这种写法,你确定你见过这种写法?并且是在java中?没有报错?String转int一般我都用Integer.parseInt(str)的。问题3.prop.setProperty("time", count+"");//这里count后为啥加上""答案3.这里的最好理解了。因为setProperty函数要求的是传入两个String类型的参数,但是你的count是int类型,传过去肯定报错,java中有一些隐型转换,int转String就是隐型转换的一种,只需要在int值的后面加一个空字符串就自动转换为String类型了。除了这个就是高精度转低精度都是隐型转换的。
      

  3.   

    2楼回答得挺靠谱的,
    1、绝对路径没写完整
    2、这个“int()s”,楼主的意思应该是“(int)s”吧,不能这样转换String的,普通的long、double等number可以这么搞,但是String就不行了,通常用Integer.parseInt()
    3、一个数字加字符就会转换成字符,不过感觉写成“""+count”应该效率会更高一些!
      

  4.   

    因为PRN是打印机的接口的设备名,而CON是串口的设备名,他们是系统的预留名。所以不能使用PRN.TXT CON.TXT等以系统设备名为文件名的任何文件如PRN.ABC 也是不行的,所以你改con就好了,路径没有问题,默认当前路径
      

  5.   

    new  file文件不存在问题一直存在,不知为何原因
      

  6.   

    File files=new File("con.txt");问题出在这句,你把文件名字起长点就可以了,不要起为con.txt。
      

  7.   

    一句话,你在达内学java吧,我也是,记得多交流。留下企鹅号401473424
      

  8.   

    问题一:
        你取什么名不好,非要取con,你知道con在windows系统下有啥涵义不?
        con是串口的设备名,属于系统的预留名。所以你不能创建任何以con为文件名的文件和文件夹。问题二:
        count=int()s,java里面绝对没有的这样的方法,所以lz,基础是很重要的!问题三:
        count是int类型的,而setProperty(String key,String value)方法的两个参数都是String类型的,当然要把count转换成String类型啊,所以才是count+""。
      

  9.   

    con 在windows系统下是 console(控制台的简写). 串口设备是 com. 我测试不报错,而是直接输出到控制台了。