2014-09-22 3 views
0

я использую массив String [3] для сохранения пользовательского ввода, который получил от 4 JTextFields I, то вывести массив в текстовый файл:Array «вне границ»

String[] userInfo = new String[3]; 
    userInfo[0] = sourceTextField.getText(); 
    userInfo[1] = usernameTextField.getText(); 
    userInfo[2] = passwordTextField.getText(); 
    userInfo[3] = emailTextField.getText(); 
    for (String userInfo1 : userInfo) { 
     try 
     { 
      BufferedWriter writer = new BufferedWriter(new FileWriter("C:\\Users\\Peace Infinity\\Desktop\\[programming]Projects\\DataFiles\\PasswordRepository.txt", true)); 
      String s; 
      s = userInfo1; 
      writer.write(s + " "); 
      writer.flush(); 
     }catch (IOException ex) 
     { 
      Logger.getLogger(ADD_dialogBox_v1.class.getName()).log(Level.SEVERE, null, ex); 
      JOptionPane.showMessageDialog(null, "Error processing file!"); 
     } 
    } 

Может кто-то скажите мне, почему я получаю исключение «индекс массива за пределами границ»? Спасибо

ответ

1

Когда вы объявляете массив, вы указываете длину/размер этого массива. Массив начинается с индекса 0, как вы это делали в коде, но вы пытаетесь присвоить значение индексу «вне границ» - четвертый индекс.

new String[3] // index 0,1,2 
new String[4] // index 0,1,2,3 
+1

Спасибо, я получил это работает .. это был глупый вопрос, на самом деле. Сожалею. – noBrainer

1

решение очень простое

String[] userInfo = new String[4]; 
0

Вы используете меньший массив .... сделать это

String[] userInfo = new String[4]; 

Я хотел бы предложить вам использовать Arraylist, поскольку это не требует любой размер для объявления и может содержать любое количество предметов.

ArrayList<String> userInfo = new ArrayList<>(); 
    userInfo.add(sourceTextField.getText()); 
    userInfo.add(usernameTextField.getText()); 
    userInfo.add(passwordTextField.getText()); 
    userInfo. dd(emailTextField.getText()); 
    for (String userInfo1 : userInfo) { 
     try 
     {....... 
      ............ 

и остальная часть кода обработал соответственно ....

+0

Спасибо Hitesh Garg, – noBrainer

+0

U r Добро пожаловать @noBrainer. Если это действительно поможет вам, не забудьте добавить плюс один и принять ответ, поскольку он поможет будущим посетителям этого сообщения. –

Смежные вопросы