four systems Ответов: 2

Java arrays index out of bounds esception


код, который должен создавать файлы с именами, указанными в именах массивов, однако ошибка

"Esception в потоке "main" java.lang.ArrayIndexOutOfBoundsException: 5
в inout.ArrayWriteFiles.main(ArrayWriteFiles.java:30)"

public class ArrayWriteFiles 
{      

public static void main(String[] args) throws IOException
{         
        String[] Names = new String[5]; 
        Names[0] = "Android";
        Names[1] = "java";
        Names[2] = "computerscience";
        Names[3] = "satellite";
        Names[4] = "communication";        
  for(int i=0 ; i<=Names.length ; i++){
  String fileName = "name" + Names[i] + ".html";
  PrintWriter printer = new PrintWriter(fileName, "UTF-8");   
  printer.write("Java is object oriented"); 			
  printer.close();
  }
}
} 


Что я уже пробовал:

измененный код и поиск классов java

2 Ответов

Рейтинг:
15

GKP1992

Условие в вашем цикле for таково

i<=Names.length;

Вот Имена.длина вычисляется как 5 для последней итерации, когда вы пытаетесь получить доступ к элементу с индексом массива 5, что невозможно для массива длины 5.

Попробуйте изменить это условие на
i < Names.length;


CPallini

5.

GKP1992

TY.

four systems

ничего себе, esception исчез, но код не создал никаких файлов,

Рейтинг:
11

CPallini

GKP1992 я уже дал вам правильный ответ.
Однако обратите внимание, что вы также можете написать цикл таким образом (см. Оператор for - учебники по Java - изучение языка Java - основы языка [^])

for(String name : Names)
{
  String fileName = "name" + name + ".html";
  //...
}


four systems

замечательно, еще один способ создания файлов

four systems

ty