A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-李勇 中级黑马   /  2012-6-14 00:34  /  1247 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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");//file单独封装是为了下面的判断
                if(!file.exists())
                        file.createNewFile();//判断文件不存在则建立文件
                FileInputStream fis=new FileInputStream(file);//流与文件关联
                prop.load(fis);//将输入流中的键值对信息存入Properties中
                int count=0;//计数器
                String value=prop.getProperty("time");//获取time键对应的值信息
                if(value!=null)
                {
                        count=Integer.parseInt(value);//?为什么不写成count=(int)value;
                        if(count>5)//大于5次退出程序
                        {
                                System.out.println("使用次数已到");
                                return;
                        }
                }
                count++;//计数器加1
                prop.setProperty("time",count+"");//将值写入集合中
                FileOutputStream fos=new FileOutputStream(file);//写入输出流
                prop.store(fos,"");//写入文件
                fos.close();//关闭输出流
                fis.close();//关闭输入流
        }
}

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

3 个回复

倒序浏览
因为String的范围比int要大,所以强制类型转换是不行的

回复 使用道具 举报
字符串类型转整型,不能直接强转的,而且一个是基本数据类型,一个引用数据类型
字符串转整型就要用到Integer.paseInt(String str);
同样还有转成其他类型的方法 Double.parseDouble(String str)   Float.parseFloat(String str) 等等

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
  count=Integer.parseInt(value);//?为什么不写成count=(int)value;
当然不能直接转了,count是int型,value是字符串,一个是对象,一个是基本数据类型,应该用Integer的parseInt方法将字符串参数作为有符号的十进制整数进行解析。
然后赋值给count,这个时候有一个Integer类型自动拆包为int型的过程!

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马