【发布时间】:2013-12-05 22:35:47
【问题描述】:
在编译和运行这个程序时,会创建一个包含以下参数的文件:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 20]20
我不明白数组关闭后额外的 20 来自哪里。如何删除它?是什么原因造成的?
程序正在创建一个 .txt 文件并输入一个数组。最后一位被修改为 20,但由于某种原因,另外 20 被添加到整个数组之外。代码如下:
public static void main(String[] args) throws IOException
{
int[] a = {1,2,3,4,5,6,7,8,9,10};
File file = new File("text.txt");
if (!file.exists())
{
file.createNewFile();
}
FileWriter fw = new FileWriter(file.getAbsoluteFile());
BufferedWriter bw = new BufferedWriter(fw);
bw.write(" " + Arrays.toString(a));
bw.close();
System.out.println("Done!");
StringBuilder contents = new StringBuilder();
file = new File("text.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null)
{
contents.append(line);
}
String[] numbers = contents.toString().split("10");
try {
numbers[numbers.length - 1] = String.valueOf(Integer.parseInt(numbers[numbers.length - 1]) - 1);
} catch (NumberFormatException nfe) { }
FileOutputStream fos = new FileOutputStream(file);
BufferedWriter out = new BufferedWriter(new OutputStreamWriter(fos));
for(String number : numbers)
{
out.write(number + 20);
}
out.close();
}
【问题讨论】: