这是我在Dropbox中下载和阅读文件中的文本的代码。版本是一个URL。
BufferedReader in = new BufferedReader(new InputStreamReader(version.openStream()));
String inputLine;
int line = 0;
try{
while ((inputLine = in.readLine()) != null){
strings[line] = new String(inputLine);
line++;
}
} catch (Exception e){
e.printStackTrace();
}
虽然,我觉得这个很烦人的错误。
java.lang.ArrayIndexOutOfBoundsException:1
at sky.the.venture.client.Download.getCredits(Download.java:38)
at sky.the.venture.client.LauncherFrame.credits(LauncherFrame.java:315)
at sky.the.venture.client.LauncherFrame。(LauncherFrame.java:49)
at sky.the.venture.Destiny。(Destiny.java:13)
在Start.main(Start.java:11)
因此,出错的部分是Download.java:38。这是
strings[line] = new String(inputLine);
所以,如果有人可以提供帮助,我会非常高兴= D
答案 0 :(得分:3)
大概你只创建了一个这样的数组:
String[] strings = new String[1];
数组不会在Java中自行调整大小 - 实际上,它们无法调整大小。如果您想要动态调整大小的集合,请使用List<E>
实施例,例如ArrayList<E>
:
List<String> lines = new ArrayList<String>();
while ((inputLine = in.readLine()) != null) {
lines.add(inputLine);
}
答案 1 :(得分:2)
您似乎正在尝试写入尚未分配的strings
数组的元素。例如,如果您已分配类似strings[10]
的内容,并且lines
增加到11,则会收到ArrayIndexOutOfBoundsException异常。