Em có đang làm 1 bài tập ghi đọc danh sách giảng viên lúc ghi danh sách thì đc nhưng khi đọc danh sách và in ra màn hình thì gặp lỗi này =.=
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at Function.FnDocGhiFile.docFileGIANGVIEN(FnDocGhiFile.java:49)
at Object.DSGIANGVIEN.xuatDSGIANGVIEN(DSGIANGVIEN.java:37)
at Object.Main.main(Main.java:25)
chưa biết tại sao lại lỗi như vậy anh chị nào giúp e với ạ
GIANGVIEN
package Object;
import java.io.Serializable;
import java.util.Scanner;
public class GIANGVIEN implements Serializable{
private String MaGV;
private String Hoten;
private String Ngaysinh;
private String Gioitinh;
private String Diachi;
private String Tenmon;
public String getMaGV() {
return MaGV;
}
public void setMaGV(String MaGV) {
this.MaGV = MaGV;
}
public String getHoten() {
return Hoten;
}
public void setHoten(String Hoten) {
this.Hoten = Hoten;
}
public String getNgaysinh() {
return Ngaysinh;
}
public void setNgaysinh(String Ngaysinh) {
this.Ngaysinh = Ngaysinh;
}
public String getGioitinh() {
return Gioitinh;
}
public void setGioitinh(String Gioitinh) {
this.Gioitinh = Gioitinh;
}
public String getDiachi() {
return Diachi;
}
public void setDiachi(String Diachi) {
this.Diachi = Diachi;
}
public String getTenmon() {
return Tenmon;
}
public void setTenmon(String Tenmon) {
this.Tenmon = Tenmon;
}
public void CanBo(String ma, String ht, String ns, String gt, String dc,String tm)
{
MaGV = ma;
Hoten = ht;
Ngaysinh = ns;
Gioitinh = gt;
Diachi = dc;
Tenmon=tm;
}
public void nhapGV() {
Scanner sc = new Scanner(System.in);
System.out.print(" Nhập mã: ");
MaGV = sc.nextLine();
System.out.print(" Nhập họ tên: ");
Hoten = sc.nextLine();
System.out.print(" Nhập ngày sinh: ");
Ngaysinh = sc.nextLine();
System.out.print(" Nhập giới tính: ");
Gioitinh = sc.nextLine();
System.out.print(" Nhập địa chỉ: ");
Diachi = sc.nextLine();
System.out.print(" Nhập Tên môn:");
Tenmon = sc.nextLine();
}
public void xuatChiTietGV() {
System.out.print(" Mã: " + MaGV);
System.out.print(" Họ tên: " + Hoten);
System.out.print(" Ngày sinh: " + Ngaysinh);
System.out.print(" Giới tính: " + Gioitinh);
System.out.print(" Quê quán: " + Diachi);
System.out.print(" Tên Môn: " + Tenmon);
}
public void xuatGV() {
System.out.printf("\n | %7s | %20s | %15s | %6s | %15s | %6s |", MaGV, Hoten, Ngaysinh, Gioitinh,Diachi,Tenmon);
}
public String toString()
{
return"\n Mã Giảng Viên :"+ MaGV+ "Họ Tên:"+ Hoten+"Ngày Sinh :"+ Ngaysinh+"Giới Tính :"+Gioitinh+"Địa Chỉ"+Diachi+"Tên Môn"+Tenmon;
}
public void display()
{
System.out.println(toString());
}
}
DSGIANHVIEN
package Object;
import Function.FnDocGhiFile;
import Object.GIANGVIEN;
import java.io.FileNotFoundException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.Scanner;
public class DSGIANGVIEN {
File fileName = new File("GIANGVIEN.txt");
ArrayList<GIANGVIEN> DSGIANGVIEN = new ArrayList<>();
int n,i;
Scanner sc = new Scanner(System.in);
public void nhapDSGIANGVIEN() throws IOException{
System.out.print("Nhập số Giảng viên:");
n = sc.nextInt();
for(i=0;i<n;i++)
{
GIANGVIEN GV = new GIANGVIEN();
GV.nhapGV();
DSGIANGVIEN.add(GV);
}
FnDocGhiFile.ghiFileGIANGVIEN(fileName, DSGIANGVIEN, true);
}
public void xuatDSGIANGVIEN() throws IOException{
DSGIANGVIEN = new ArrayList<>();
DSGIANGVIEN=FnDocGhiFile.docFileGIANGVIEN(fileName);
System.out.println("DANH SACH GIANG VIEN: ");
System.out.print("\n\n ---------------------------------------------------------------------------------\n");
System.out.printf("\n |Mã Buổi dạy : | Họ tên: |Ngày sinh: |Giới tính: | Diachi |tenmon");
for (GIANGVIEN st: DSGIANGVIEN) {
DSGIANGVIEN.get(i).xuatGV();
i++;
}
}
}
FnGhiDocFile
package Function;
import Object.GIANGVIEN;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
public class FnDocGhiFile {
public static void ghiFileGIANGVIEN(File fileName, ArrayList<GIANGVIEN> listGVCT, boolean isAppend) {
BufferedWriter writer = null;
try {
writer = new BufferedWriter(new FileWriter(fileName, isAppend));
for (GIANGVIEN giangvien : listGVCT) {
writer.write(giangvien.toString());
}
} catch (IOException e) {
} finally {
try {
if (writer != null) {
writer.close();
}
} catch (IOException e) {
}
}
}
public static ArrayList<GIANGVIEN> docFileGIANGVIEN(File fileName) throws IOException {
ArrayList<GIANGVIEN> listGVCT = new ArrayList<>();
BufferedReader br = null;
String sCurrentLine;
try {
br = new BufferedReader(new FileReader(fileName));
if(!br.ready())
{throw new IOException();
} while((sCurrentLine= br.readLine()) !=null)
{ String[] arrayString = sCurrentLine.split("~");
GIANGVIEN giangvien=new GIANGVIEN();
giangvien.setMaGV(arrayString[0]);
giangvien.setHoten(arrayString[1]);
giangvien.setNgaysinh(arrayString[2]);
giangvien.setGioitinh(arrayString[3]);
giangvien.setDiachi(arrayString[4]);
giangvien.setTenmon(arrayString[5]);
listGVCT.add(giangvien);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null) {
br.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
return listGVCT;
}
}
phần Main.
package Object;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String arg[]) throws IOException
{
DSGIANGVIEN dsgv= new DSGIANGVIEN();
int chon;
Scanner sc = new Scanner(System.in);
for(int i=0;;i++) {
System.out.print("\n 1: Nhập thêm giảng viên: ");
System.out.print("\n 2: Hiển thị danh sách GV ");
System.out.print("\n Mời nhập lựa chọn (0-2): ");
chon = sc.nextInt();
switch (chon) {
case 1:
dsgv.nhapDSGIANGVIEN();
break;
case 2:
dsgv.xuatDSGIANGVIEN();
break;
}
}
}
}
Anh chị có thể xem qua cho e hỏi phần đọc file sai ntn được không ạ =.= e ngồi cả ngày chưa sửa đc