Проблема кажется тривиальной, но я все еще борюсь с ней. Ошибка: java.lang.ArrayIndexOutOfBoundsException: индекс 1 выходит за пределы длины 1, из которого, как я понимаю, доступен только первый индекс из массива (id, который в данном случае является первичным ключом). Почему это? Разве я не определяю длину массива автоматически на основе количества элементов, разделенных разделителем, когда загружаю файл CSV? Что же тогда не так с моим методом readFile()?
UserData.java
import javax.persistence.*;
@Table
@Entity(name="users")
public class UserData {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String firstName;
@Column
private String lastName;
@Column
private int telephoneNo;
@Column
private String email;
@Column
private String pickUp;
@Column
private String dropOff;
public UserData(){}
public UserData(String firstName, String lastName, int telephoneNo, String email, String pickUp, String dropOff){
this.firstName = firstName;
this.lastName = lastName;
this.telephoneNo = telephoneNo;
this.email = email;
this.pickUp = pickUp;
this.dropOff = dropOff;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getTelephoneNo() {
return telephoneNo;
}
public void setTelephoneNo(int telephoneNo) {
this.telephoneNo = telephoneNo;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPickUp() {
return pickUp;
}
public void setPickUp(String pickUp) {
this.pickUp = pickUp;
}
public String getDropOff() {
return dropOff;
}
public void setDropOff(String dropOff) {
this.dropOff = dropOff;
}
}
sample.csv
1,Reanna,Colepio,159031625,reanna_colepio123@gmail.com,London,Glasgow
2,Rita,Das,987443767,ritadas@outlook.com,Edinburgh,Glasgow
ManageData.java
import org.hibernate.Session;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class ManageData {
public static void readFile() {
String line = "";
Session session = HibernateConfig.getSessionFactory().openSession();
try (BufferedReader br = new BufferedReader(new FileReader("/Users/ggabrychowicz/IdeaProjects/Bus Managing System/src/main/java/sample.csv"))){
while ((line = br.readLine()) != null){
String[] tempArr = line.split(",");
UserData userData = new UserData();
userData.setFirstName(tempArr[1]);
userData.setLastName(tempArr[2]);
userData.setTelephoneNo(Integer.parseInt(tempArr[3]));
userData.setEmail(tempArr[4]);
userData.setPickUp(tempArr[5]);
userData.setDropOff(tempArr[6]);
session.beginTransaction();
session.save(userData);
session.getTransaction().commit();
}
session.close();
}
catch (IOException e) {
if (session!=null){
session.getTransaction().rollback();
}
e.printStackTrace();
}
}
}
Вот что я получаю, когда печатаю массив:
1
Reanna
Colepio
159031625
reanna_colepio123@gmail.com
London
Glasgow
2
Rita
Das
987443767
ritadas@outlook.com
Edinburgh
Glasgow
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at ManageData.readFile(ManageData.java:26)
at Main.main(Main.java:4)
Подробнее здесь: https://stackoverflow.com/questions/608 ... omatically
Индекс 1 выходит за пределы для ошибки длины 1 при автоматическом создании массива из файла CSV. ⇐ JAVA
Программисты JAVA общаются здесь
1728097735
Anonymous
Проблема кажется тривиальной, но я все еще борюсь с ней. Ошибка: java.lang.ArrayIndexOutOfBoundsException: индекс 1 выходит за пределы длины 1, из которого, как я понимаю, доступен только первый индекс из массива (id, который в данном случае является первичным ключом). Почему это? Разве я не определяю длину массива автоматически на основе количества элементов, разделенных разделителем, когда загружаю файл CSV? Что же тогда не так с моим методом readFile()?
UserData.java
import javax.persistence.*;
@Table
@Entity(name="users")
public class UserData {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column
private String firstName;
@Column
private String lastName;
@Column
private int telephoneNo;
@Column
private String email;
@Column
private String pickUp;
@Column
private String dropOff;
public UserData(){}
public UserData(String firstName, String lastName, int telephoneNo, String email, String pickUp, String dropOff){
this.firstName = firstName;
this.lastName = lastName;
this.telephoneNo = telephoneNo;
this.email = email;
this.pickUp = pickUp;
this.dropOff = dropOff;
}
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
public int getTelephoneNo() {
return telephoneNo;
}
public void setTelephoneNo(int telephoneNo) {
this.telephoneNo = telephoneNo;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getPickUp() {
return pickUp;
}
public void setPickUp(String pickUp) {
this.pickUp = pickUp;
}
public String getDropOff() {
return dropOff;
}
public void setDropOff(String dropOff) {
this.dropOff = dropOff;
}
}
sample.csv
1,Reanna,Colepio,159031625,reanna_colepio123@gmail.com,London,Glasgow
2,Rita,Das,987443767,ritadas@outlook.com,Edinburgh,Glasgow
ManageData.java
import org.hibernate.Session;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class ManageData {
public static void readFile() {
String line = "";
Session session = HibernateConfig.getSessionFactory().openSession();
try (BufferedReader br = new BufferedReader(new FileReader("/Users/ggabrychowicz/IdeaProjects/Bus Managing System/src/main/java/sample.csv"))){
while ((line = br.readLine()) != null){
String[] tempArr = line.split(",");
UserData userData = new UserData();
userData.setFirstName(tempArr[1]);
userData.setLastName(tempArr[2]);
userData.setTelephoneNo(Integer.parseInt(tempArr[3]));
userData.setEmail(tempArr[4]);
userData.setPickUp(tempArr[5]);
userData.setDropOff(tempArr[6]);
session.beginTransaction();
session.save(userData);
session.getTransaction().commit();
}
session.close();
}
catch (IOException e) {
if (session!=null){
session.getTransaction().rollback();
}
e.printStackTrace();
}
}
}
[b]Вот что я получаю, когда печатаю массив:[/b]
1
Reanna
Colepio
159031625
reanna_colepio123@gmail.com
London
Glasgow
2
Rita
Das
987443767
ritadas@outlook.com
Edinburgh
Glasgow
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds for length 1
at ManageData.readFile(ManageData.java:26)
at Main.main(Main.java:4)
Подробнее здесь: [url]https://stackoverflow.com/questions/60865319/index-1-out-of-bounds-for-length-1-error-while-creating-the-array-automatically[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия