今天刚刚检查了一下P1,之前感觉很正确的代码经过一些测试发现了bug。在P1的第二部分,生成magicsquare的部分,外表看不出什么问题,但是生成43*43的时候显示是magicsquare,生成45*45的magicsquare时候就会提示输入错误,找了很久没发现什么问题。观察错误提示,发现提示的是自己设计的提示信息“INPUT WRONG(NOT n*n)",也就是数组存的行列不等。
首先,判断方式应该无误,感觉写文件读文件也不会有问题,于是编了很多测试文件,但都没发现问题,再加上天气十分炎热,学校又没有空调,连电扇也没有,心情就十分烦躁。
最后逐行排查,发现是FileWriter的问题,居然改成PrintWriter就好了。老实讲,自己java水平很低,对这两个writer不是很熟悉,猜测可能是前者在处理过多数据时处理不好换行和\t.导致文件写入出现问题,进而导致文件读取出问题。
给FileWriter一个差评!