0
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Arrays;
import java.util.ArrayList;
/**
* Write a description of class ReadInCsv here.
*
* @author (Kevin Knapp)
* @version (10-10-2013)
*/
public class ReadInCsv
{
public static void main(String[] args)
{
String csvName = "Countries.csv";
File csvFile = new File(csvName);
ArrayList<String> nameList = new ArrayList<>();
ArrayList<String> popList = new ArrayList<>();
ArrayList<String> areaList = new ArrayList<>();
ArrayList<String> gdpList = new ArrayList<>();
ArrayList<String> litRateList = new ArrayList<>();
try
{
Scanner in = new Scanner(csvFile).useDelimiter(",");
while (in.hasNext())
{
String name = in.next();
nameList.add(name);
String pop = in.next();
popList.add(pop);
String area = in.next();
areaList.add(area);
String gdp = in.next();
gdpList.add(gdp);
String litRate = in.next();
litRateList.add(litRate);
}
in.close();
System.out.println(nameList);
System.out.println(popList);
System.out.println(areaList);
System.out.println(gdpList);
System.out.println(litRateList);
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
}
}
그래서 CSV 파일에서 읽으 려하고 각 스캔 된 인스턴스를 배열 목록에 추가해야합니다 (나중에이 목록의 각 요소를 참조하려고합니다) ,하지만 내 결과는 뭔가를 읽고 추가하자마자 다음 문자열을 읽기 전에 다음 줄로 건너 뜁니다. 대각선으로 건너 뛰지 않고 똑바로 읽을 필요가 있음을 나타냅니다.CSV 파일에서 잘못된 출력
메신저 정말 간단합니다. , 방금 전에 약 1 주일 전에 자바를 배우기 시작했습니다. 도움을 주셔서 감사합니다.
아, 나는 1과 비슷한 것을 가지고 있었는데, 나는 모든 것을 긴 배열로 읽었지만 몇 가지 이유로 물건을 바꾸기 시작했다. 내가 생각한 경로는 내가 시작한 아이디어 경로에 머물러 있었다. 그래서 나는 이해한다. 이 id는 이해를 선호합니다. 그러면 그냥 누군가가 나를 위해이 문제에 답할 수있게합니다. 원래 하나의 긴 배열이 있다고 생각하므로 in.nextLine()을 사용한다고 가정합니다. split (","); 인덱스 5+를 계속 사용하는 대신에 요소 인덱스 (0-4)를 새로 반복하는 것으로 시작합니다. 원래 문제는 –
이었습니다. 'in.nextLine(). split (",")'에 대한 이해가 올바른 것 같습니다. 생각해 볼 수있는 또 다른 방법은 CSV 파일은 거의 스프레드 시트 (Excel 등)입니다. 각 행은 별도의 항목입니다. 각 행을 한 번에 하나씩 읽은 다음 이동하기 전에 해당 행을 조작하려고합니다 다음 하나에, 행을 함께 체인 또는 각각의 개별 셀에 작동하려고합니다. –
아 그래, 내 코드를 디버깅하기위한 테스트 csv로 엑셀 시트를 사용합니다. 덕분에, 완벽하게 지금 작동합니다. –