이 문제를 제기 초기화 방법은 내가 가능한 한 간결하려고합니다, 설명을 조금 취는 CSV에서 객체의 배열이
내가 할 수있는 객체의 배열을 initalise하려고 한 이러한 개체 만 이 두 필드 (두 문자열) : 이름, 제조업체 나는 다음과 같은 형식으로 CSV 파일에서 읽어 필드를 초기화하는 것을 시도하고있다
:
토마토, 하인즈
콩, 제리
(줄 사이에 공백이 없어야합니다. 어떤 이유로이 사이트에서 서식을 지정하지 않습니다.)
각 행의 첫 번째 문자열은 이름이되고 싶은 값이고 두 번째는 제조업체입니다.
private void readFile (String inFilename) {
FileInputStream fileStrm = null;
InputStreamReader rdr;
BufferedReader bufRdr;
int lineNum;
String line;
try {
fileStrm = new FileInputStream(inFilename);
rdr = new InputStreamReader(fileStrm);
bufRdr = new BufferedReader(rdr);
lineNum = 0;
line = bufRdr.readLine();
while {line != null) {
lineNum++;
processLine(line); //passes line to tokenizer
line = bufRdr.readLine();
}
fileStrm.close();
}
catch (IOException e) {
if (fileStrm != null) {
try { fileStrm.close(); } catch (IOException ex2) { }
}
System.out.println("Error in file processing: " + e.getMessage());
}
}
의 선이 토크 나이 메소드에 전달됩니다 :
은 그래서 하나의 값을 추출하는 토크 나이 방법의 각 줄에 전달하는 CSV, 각각의 라인을 읽는 방법을 만들었습니다
private String processLine(String csvRow) {
String thisToken = null;
StringTokenizer strTok;
strTok = new StringTokenizer(csvRow, ",");
while (strTok.hasMoreTokens()) {
thisToken = strTok.nextToken();
}
}
그리고 여기에 내가 조금 붙어 있습니다. 배열을 초기화하려면 루프와 같은 것이 필요하다고 생각합니다.
for (int i=0; i<=array.length;i++)
{
array[i].name = readFile("filename.csv");
array[i].manufacturer = readFile("filename.csv");
}
분명히 이것은 작동하지 않습니다. 아무도 내가 이것에 대해 어떻게 갈 수 있는지 제안 할 수 있습니까? 코드를 그대로 유지하고 기존 코드를 사용하여 솔루션을 찾아내는 것이 좋습니다.
이 코드를 실행 한 결과는 무엇입니까 ?? 어떤 오류가 있습니까? –
메서드를 올바르게 읽고 토큰 화하는 방법은이 메서드로 배열을 반복하는 방법을 잘 모르겠습니다. – Dawson