2017-03-02 10 views
-2

私はJavaコードに問題があります。私は何がエラーの問題を把握するためにすべてを試みた。多分あなたは私を助けることができます。ArrayIndexOutOfBoundsException私に助けてください

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(); 
     } 

    } 

} 

毎回私は次の例外を取得したいと思います。スレッド "メイン" java.lang.ArrayIndexOutOfBoundsExceptionで

例外:1 ConvertCSVtoArraysAsset1.Convert1で (ConvertCSVtoArraysAsset1.java:30)

たぶん、あなたはそれで私を助けることができます。あなたは例外で配列インデックスと「1」を使用していた唯一の場所によって

挨拶

+0

あなたは私たちがここに行番号を持っていない見ることができるように。おそらく、あなたはどのライン30であるかを教えてくれるかもしれません。 – tnw

答えて

0

を、エラーがこの行にはおそらくです:

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

とがあるので、それはおそらくですあなたの配列内の多くの要素ではありません。

は、あなたの配列がで構成されてものを見るためにあなたのstring.Split後にこのラインを入れて、それは長さです:

System.out.println(Arrays.toString(asset)); 
関連する問題