Hỏi đáp

Chia sẻ kiến thức, cùng nhau phát triển

Đọc dữ liệu từng dòng từ file trong Java sử dụng BufferedReader

20:18 03-05-2017 6.959 lượt xem 2 bình luận 14:15 05-05-2017

Em có một class Khach Hang gồm có 
Ma int, Hoten String, Namsinh int, Sodienthoai string , và muốn đọc dữ liệu từng dòng được ngăn cách với nhau bằng dấu phẩy ạ .mọi người xem em sai ở đoạn nào với ạ !

Code đoạn đọc file như thế này ạ

public static  ArrayList<KhachHang> docFile (String path){
		ArrayList<KhachHang> dsKhachHang = new ArrayList<KhachHang>();
		try{
			FileInputStream fis = new FileInputStream(path);
			InputStreamReader isr = new InputStreamReader(fis);
			BufferedReader bfr = new BufferedReader(isr);
			String line = bfr.readLine();
			while(line != null){
				String []array = line.split(",");
				int []vtdau = null ;
				int []aray = null ;
					for (int i = 0; i < aray.length; i++) {
						aray[i] = line.substring(0, vtdau[i]).length();
					}	
				if(array.length ==4){
					KhachHang kh = new KhachHang(aray[0],array[1],aray[2],array[3]);
					dsKhachHang.add(kh);
					
				}
				line = bfr.readLine();
			}
			fis.close();
			isr.close();
			bfr.close();
		}
		catch(Exception ex){
			ex.printStackTrace();
		}
		return dsKhachHang;
	}

}

và file cần đọc vào là: 

1,Nguyễn văn An,1998,0987654321
2,Nguyễn căn B,1997,0123456789

 

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
Nguyễn Đăng Dũng đã bình luận 14:15 05-05-2017
public static  ArrayList<KhachHang> docFile (String path){
        ArrayList<KhachHang> dsKhachHang = new ArrayList<KhachHang>();
        try{
            FileInputStream fis = new FileInputStream(path);
            InputStreamReader isr = new InputStreamReader(fis);
            BufferedReader bfr = new BufferedReader(isr);
            String line = bfr.readLine();
            while(line != null){
                String []array = line.split(",");
                if(array.length == 4){
                    KhachHang kh = new KhachHang(
                            Integer.parseInt(array[0]),
                            array[1],
                            Integer.parseInt(array[2]),
                            array[3]
                    );
                    dsKhachHang.add(kh);

                }
                line = bfr.readLine();
            }
            fis.close();
            isr.close();
            bfr.close();
        }
        catch(Exception ex){
            ex.printStackTrace();
        }
        return dsKhachHang;
    }

cắt line xong rồi thì tạo đối tượng rồi thêm thôi

K9 SuperAdmin, KquizAdmin, KquizAuthor đã bình luận 22:03 03-05-2017

sao mọi người cứ thích quăng code lên rồi hỏi sai ở đâu như đánh đố nhau vậy nhỉ. sao bạn không thử debug xem nó sai ở chỗ nào

Câu hỏi mới nhất