-2

これは、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:
sky.the.venture.client.Download.getCredits(Download.java:38)
で 1。sky.the.venture.client.LauncherFrame.credits(LauncherFrame.java:315)
で。 startup.client.LauncherFrame .(LauncherFrame.java:49)
at sky.the.venture.Destiny.(Destiny.java:13)
at Start.main(Start.java:11)

で、エラーになっている部分は Downloadジャバ:38. どれが

strings[line] = new String(inputLine);

だから誰かが助けてくれるなら、私は本当に幸せです= D

4

2 に答える 2

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);
}
于 2012-09-21T20:56:32.020 に答える
2

strings割り当てられていない配列の要素に書き込もうとしているようです。たとえば、 のようなものを割り当てstrings[10]lines11 にインクリメントすると、ArrayIndexOutOfBoundsException 例外が発生します。

于 2012-09-21T20:58:02.227 に答える