黑马程序员技术交流社区

标题: 求助啦(发钱啦) [打印本页]

作者: 房宝彬    时间: 2012-3-2 12:08
标题: 求助啦(发钱啦)
  1. package cn.itcast.day15.exercise;

  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. import java.io.FileWriter;
  5. import java.io.IOException;

  6. public class Exercise5 {

  7.         public static void main(String[] args) throws IOException {
  8.                 BufferedReader br = new BufferedReader(new FileReader("times.txt"));       
  9.                 String line = br.readLine();
  10.                
  11.                 br.close();
  12.                
  13.                 int times = Integer.parseInt(line);
  14.                
  15.                 if(times > 0) {               
  16.                         System.out.println("剩余使用次数: " + --times);
  17.                         FileWriter fw = new FileWriter("times.txt");
  18.                         fw.write(times + "");               
  19.                         fw.close();
  20.                 } else {
  21.                         System.out.println("软件已到期");
  22.                 }
  23.         }

  24. }
复制代码
大家帮忙看看.谢谢哈,报错提示 数据格式错误.
作者: 田啸    时间: 2012-3-2 12:21
这个是由于你times.txt文件里存在非整数类型,如有字母abc,这时候你程序里int times = Integer.parseInt(line);
首先要看一下parseInt(String s)这个方法啊,这里的s - 包含要解析的 int 表示形式的 String。
如果你文本里含有的是字母或者是其他非int形式的string啊,那这个方法是无法返回值的,就会出现数据类型的错误.


作者: 房宝彬    时间: 2012-3-2 12:43
田啸 发表于 2012-3-2 12:21
这个是由于你times.txt文件里存在非整数类型,如有字母abc,这时候你程序里int times = Integer.parseInt(li ...

parseInt 这个不是把字符串转换整数么? 我的TXT文件里有中文,有数字,有符号啊
作者: 田啸    时间: 2012-3-2 12:50
本帖最后由 田啸 于 2012-3-2 12:53 编辑

这个你可以参考API中的说法:
public static int parseInt(String s)
                    throws NumberFormatException将字符串参数作为有符号的十进制整数进行解析。除了第一个字符可以是用来表示负值的 ASCII 减号 '-' ('\u002D') 外,字符串中的字符都必须是十进制数字。返回得到的整数值,就好像将该参数和基数 10 作为参数赋予 parseInt(java.lang.String, int) 方法一样。

参数:
s - 包含要解析的 int 表示形式的 String。
返回:
用十进制参数表示的整数值。
抛出:
NumberFormatException - 如果字符串不包含可解析的整数。
,
所以如果你的文件中有中文或者符号等其他费int形式的数据的话,就肯定无法得到返回值,从而抛出NumberFormatException 异常,建议你查问题的时候看看API,这上面才是最根本的解释
作者: 房宝彬    时间: 2012-3-2 12:53
OK,我懂了.谢谢哈




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2