Tôi đang đọc một xu hướng hình thức google tập tin CSV đã tải xuống, sau đây là nội dung của tập tin khi mở bằng notepad (đầu tiên chỉ có hai dòng):tập Reading CSV trong java cho biết thêm không gian giữa mỗi nhân vật
Ferrari Ferrari (lỗi std)
0,735 2%
Khi tôi đọc các tập tin sử dụng readline dòng đọc chứa khoảng trống giữa mỗi nhân vật, trong trường hợp ở trên đầu ra là:
f r r a r i (r c r r o r)
0. 7 3 5 2%
(Có tab giữa "ferrari" và "ferrari" và giữa 0,735 và 2% mà stackoverflow không hiển thị)
nhân vật Newline ở cuối mỗi dòng cũng được đọc hai lần. Tại sao lại như vậy? Bất kì giải pháp nào?
Đây là mã tôi đang sử dụng để đọc các file:
BufferedReader Reader = new BufferedReader(new FileReader("trend.csv"));
String line = null;
while ((line = Reader.readLine()) != null)
System.out.println(line);
Edit: cũng có một số nhân vật kỳ lạ đọc tại bắt đầu của tập tin
Edut: Got giải pháp
Đó là sự cố mã hóa, đã thay đổi dòng đầu tiên thành:
BufferedReader Reader = new BufferedReader(new InputStreamReader(new FileInputStream("trend.csv"), "UTF-16"));
Có vẻ như Unicode với tôi. –
Tôi đã chạy mã chính xác trên máy của tôi và mã được in chính xác. Bạn đang chạy môi trường gì? Windows 7, Eclipse Helios ở đây. – Logan
Tôi đang sử dụng Windows 7 và nhật thực. Bạn đã sao chép tệp từ câu hỏi của tôi. Sử dụng tệp này: http://www.google.com/trends/viz?q=ferrari&date=2011-9&geo=all&graph=all_csv&sort=0&scale=1&sa=N –