问个简单的问题
java吧
全部回复
仅看楼主
level 1
package 书本第七章;
import java.io.*;
public class example06 {
public static void main(String[] args) throws Exception{
RandomAccessFile raf = new RandomAccessFile("test01.txt", "rw");
int times = raf.read() - 1;
if(times > 0) {
System.out.println("您还可以试用" + times + "次!");
raf.seek(0);
raf.write((times + "").getBytes());
}
else {
System.out.println("使用次数已经用完!");
}
raf.close();
}
}
2019年12月03日 16点12分 1
level 1
这个,在文本输入10,运行2次后,变成98了,该怎么改
2019年12月03日 16点12分 2
level 11
你这里有两个问题,第一,没有判断文件是否存在。第二,.read() 是读取一个字节,返回的是一个ascii码,这里是最大的问题,所以你的表达不对
假如文件里的内容是”100”,那么字节码就应该是0x31, 0x30, 0x30,那么.read()返回的是0x31,也就是49
2019年12月03日 17点12分 3
level 11
建议你研究一下io,你需要知道如何从文件里读取完整内容,以及类型转换
(times+””)这里应该改成,String.valueOf(times).getBytes(),这样更优雅
如果要字符串转整数,就用
(int) new Integer (string);
2019年12月03日 17点12分 4
1