此代码读取记事本文件 这个记事本文件上面有数字10 它因某种原因而不是10而返回一个乱码信 我认为这是ascii代码,但我不知道 此代码也是从我的编程教师代码中修改的,所以我不赞成它
/**
*Goes in to the file and extracts a number.
* @param fileName
* @return an integer
*/
static int getNumberFromFile(String fileName){
int j = 599;
try {
File textFile = new File(fileName);
Scanner sc = new Scanner(textFile);
String input = sc.nextLine();
j = Integer.parseInt(input);
} catch (Exception e) {
System.out.println("Exception: " + e);
}
return j;
}
抛出这个奇怪的异常异常: java.lang.NumberFormatException:对于输入字符串:“10”和此代码
/**
* writes data for the ai to adapt its strategy
*@param number is the number to write
* @param fileName is the fileName
*/
public static void writeToFile(String fileName,int number) {
BufferedWriter output = null;
try {
File aFile = new File(fileName);
FileWriter myWriter = new FileWriter(aFile);
output = new BufferedWriter(myWriter);
output.write(number);
output.newLine();
output.close();
} catch (Exception e) {
System.out.println("Exception:" + e);
System.out.println("please Report this bug it doesnt understand");
System.exit(1);
}
}
不要担心一些异常捕获的东西,这些东西让我看看是否捕获异常它只是打印一个(废话)消息。和一些谈论ai不担心的东西只需要这个代码工作我可以发布为什么ai需要它但我不认为它是相关的
答案 0 :(得分:2)
这条线没有达到预期效果:
output.write(number);
它在write
上呼叫BufferedWriter
,因此您应该咨询documentation ...此时您会发现您正在呼叫{{3} }。
public void write(int c) throws IOException
写一个字符。
覆盖:
课程write
中的Writer
参数:
c
-int
指定要写的字符
按照write
链接提供更多详细信息:
写一个字符。要写入的字符包含在给定整数值的16个低位中; 16个高位被忽略。 打算支持高效单字符输出的子类应该重写此方法。
所以,你正在编写Unicode字符U + 000A - 或者如果值是10真的话。我强烈怀疑它不是,因为那只是一个换行符。 / p>
如果您尝试编写数字的十进制表示,则应首先将其转换为字符串:
output.write(String.valueOf(number));