【问题标题】:ArrayIndexOutOfBoundsException Pleas help me [duplicate]ArrayIndexOutOfBoundsException 请帮助我[重复]
【发布时间】:2017-07-22 14:48:48
【问题描述】:

我的 Java 代码有问题。我尽一切努力找出错误的问题所在。也许你能帮帮我。

public static void Convert1() throws IOException,ArrayIndexOutOfBoundsException,NumberFormatException {
    String csv ="/Users/Max/IdeaProjects/Download/Asset1.csv";
    BufferedReader br = null;
    String line = "";
    String csvSplitBy = ";";

    File file = new File ("/Users/Max/IdeaProjects/Download/Datum1.csv");
    if (file.exists()) {

    } else {



        br = new BufferedReader(new FileReader(csv));
        while ((line = br.readLine()) != null) {


              String[] asset = line.split(csvSplitBy);


            String[] Date = {asset[0]};  //Datum
            String[] Open = {asset[1]};  //Öffnungskurs
            String[] High = {asset[2]};  //Tageshoch
            String[] Low = {asset[3]};  //Tagestief
            String[] Close = {asset[4]};  //Schlusskurs
            String[] Volume = {asset[5]};  //Handelsvolumen


            // Es werden die Dateien geschrieben die die einzelnen Teilbereiche enthalten
            BufferedWriter BW = new BufferedWriter(new FileWriter("Datum1.csv", true));
            StringBuilder SB = new StringBuilder();
            for (String element : Date) {
                SB.append(element);
                SB.append(";");
            }
            BW.write(SB.toString());
            BW.close();

            BufferedWriter BW2 = new BufferedWriter(new FileWriter("Öffnungskurs1.csv", true));
            StringBuilder SB2 = new StringBuilder();
            for (String element : Open) {
                SB2.append(element);
                SB2.append(";");
            }
            BW2.write(SB2.toString());
            BW2.close();

            BufferedWriter BW3 = new BufferedWriter(new FileWriter("Tageshoch1.csv", true));
            StringBuilder SB3 = new StringBuilder();
            for (String element : High) {
                SB3.append(element);
                SB3.append(";");
            }
            BW3.write(SB3.toString());
            BW3.close();

            BufferedWriter BW4 = new BufferedWriter(new FileWriter("Tagestief1.csv", true));
            StringBuilder SB4 = new StringBuilder();
            for (String element : Low) {
                SB4.append(element);
                SB4.append(";");
            }
            BW4.write(SB4.toString());
            BW4.close();

            BufferedWriter BW5 = new BufferedWriter(new FileWriter("Schlusskurs1.csv", true));
            StringBuilder SB5 = new StringBuilder();
            for (String element : Close) {
                SB5.append(element);
                SB5.append(";");
            }
            BW5.write(SB5.toString());
            BW5.close();

            BufferedWriter BW6 = new BufferedWriter(new FileWriter("Handelsvolumen1.csv", true));
            StringBuilder SB6 = new StringBuilder();
            for (String element : Volume) {
                SB6.append(element);
                SB6.append(";");
            }
            BW6.write(SB6.toString());
            BW6.close();
        }

    }

}

每次我想运行时,我都会收到以下异常。

线程“main”中的异常 java.lang.ArrayIndexOutOfBoundsException: 1 在 ConvertCSVtoArraysAsset1.Convert1(ConvertCSVtoArraysAsset1.java:30)

也许你可以帮我解决这个问题。

问候

【问题讨论】:

  • 如您所见,我们这里没有行号。也许你可以告诉我们第 30 行是哪一行。

标签: java arrays exception out


【解决方案1】:

通过您在异常中使用数组索引和“1”的唯一地方,错误可能在这一行:

String[] Open = {asset[1]};

这可能是因为你的数组中没有那么多元素。

将此行放在您的 String.split 之后,看看您的数组是由什么组成的,它的长度:

System.out.println( Arrays.toString( asset ) );

【讨论】:

    猜你喜欢
    • 2023-04-10
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 2011-11-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2015-03-16
    相关资源
    最近更新 更多