2011-12-16 36 views
6

Tôi phải đọc một tệp dict.txt có chứa một chuỗi cho dòng và thêm chúng vào danh sách mảng.Đọc InputStream to Arraylist

Tôi cố gắng này:

public ArrayList<String> myDict = new ArrayList<String>(); 

InputStream is = (getResources().openRawResource(R.raw.dict)); 
BufferedReader r = new BufferedReader(new InputStreamReader(is)); 
try { 
    while (r.readLine() != null) { 
     myDict.add(r.readLine()); 
    } 
} catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 

nhưng một cái gì đó sai ...

+0

bạn đang đọc hai lần một trong khi và lần thứ hai trong khi thêm vào danh sách. –

Trả lời

12

Bạn đang lặp lại hai lần trong mỗi vòng lặp

String line; 
while ((line=r.readLine()) != null) { 
    myDict.add(line); 
} 
+0

Biến "dòng" trong phản hồi của bạn có phải là kiểu ArrayList không? – Donshon

8

Sử dụng Apache IOUtils:

List<String> lines = IOUtils.readLines(inputStream, "UTF-8"); 
+1

Có! LUÔN chỉ định một mã hóa. Đó là một thói quen tốt để được ở. – Necreaux

Các vấn đề liên quan