2016-08-31 1 views
0

opencsv를 사용하지 않고 CSV 파일을 가져 와서 수집에 저장하려고합니다. 그 컬렉션에서 무작위로 추출한 데이터를 화면에 표시하십시오. (자바 미리 정의 된 패키지 만 사용, opencsv가 아님)csv 가져 오기 opencsv를 사용하지 않고 검색 수행

package panellist; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.util.Scanner; 
import java.util.HashMap; 
import java.util.ArrayList; 
import java.util.Iterator; 
import java.util.List; 
import java.util.Map; 
import java.util.StringTokenizer; 
import java.util.Random; 
import java.util.Set; 
public class PanelList { 
private static Random r = new Random(); 
private static int rand; 
private static int endRange = 20; 
private static List<Integer> randomNumber; 
public static void main(String[] args) { 

    String fileName = "C:\\Users\\Ankit\\Desktop\\Book2.csv"; 
File file = new File(fileName); // TODO: read about File Names 
Scanner scan = new Scanner(System.in); 
HashMap map = new HashMap(); 
ArrayList al = new ArrayList(); 
int i =0; 



try { 
    Scanner inputStream = new Scanner(file); 
    while (inputStream.hasNext()){ 
     String data = inputStream.next(); 
     System.out.println("test="+data/*.startsWith("a")*/); 
     map.put(i++,data); 
     StringTokenizer st = new StringTokenizer(data,","); 
while (st.hasMoreTokens()) { 
    System.out.println(st.nextToken()); 
} 
    } 
    inputStream.close(); 

} catch (FileNotFoundException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
} 
System.out.println("Printing HashMap:"); 
System.out.println(map); 

endRange = map.size()-1; 
for(int j=0;j<endRange;j++){ 
    rand = r.nextInt(endRange); 
    System.out.println(map.get(r)); 
} 



System.out.println(endRange); 
rand = r.nextInt(endRange);   
     do 
     { 
      rand = r.nextInt(endRange); 
     } 
     while(randomNumber.contains(rand)); 

     randomNumber.add(rand);  
      Object x= randomNumber.get(randomNumber.size()-1); 
     System.out.println(x); 


} 

} 
+0

:이 **하지 ** 문제. 몇 가지 요구 사항과 몇 가지 코드를 게시했습니다. 하지만 당신이 우리를 어떻게 도와야하는지에 대해서는 아무에게도 말하지 않았습니다. 너를 위해 일하니? – GhostCat

+0

이 코드를 실행하면 어떻게됩니까? 다른 일이 일어날 것을 기대하십니까? –

+0

내가 이러한 예외 가지고 : 스레드에서 예외를 "주"java.lang.NullPointerException이 및 panellist.PanelList.main (PanelList.java:69) C에서 : \ 사용자 ANKIT \의 AppData \ 로컬 \ 넷빈즈를 \ \ Cache \ 8.1 \ executor-snippets \ run.xml : 53 : Java returned : 1 –

답변

1

짧은 대답 :하지 마십시오.

긴 대답 :

  • 하지 바퀴를 다시 발명 마십시오.
  • 이 아닌은 "csv 파서"가 인 것으로 가정하거나 다른 기존 csv- 파싱 라이브러리라고 가정합니다.
  • 반대의 경우 : 구현이 적절한 합리적인 CSV 입력을 제공하자마자 포기한다고 가정하는 것이 매우 안전합니다.

"학교 과제는 자신의 CSV 파서 작성에 관한 이야기입니다." 그럼 내가 제안 : 꽤 많은 시간을 CSV 파일이 당신을 놀라게 할 수있는 많은 잠재력을 공부 지출. 그런 다음 다른 사람들이 그러한 문제를 어떻게 해결했는지 살펴볼 수 있습니다. 너는 앉아있다. 가장 먼저 할 일은 단순히 ','로 토큰 화하는 것은 그것을하지 않을 것임을 깨닫는 것입니다 (지금까지는).

은 (당신이 볼, 대부분의 사람들은이 사업을 위해 사용하는 것을 선호 이유 이유가 - 그것은이다 : 그것은 쉬운 일이 아니다) 게다가

+0

당신의 제안에 대해 정말 감사드립니다. 그러나 언급했듯이 이것은 학교 프로젝트입니다. 나는 csv 파일을 가져오고 무작위로 모든 레코드를 그려야합니다 (조건은 충족되어야합니다). 다음 사람은 내부 비바를 가져갈 것입니다. 일주일이 지나면 목록을 새로 고침해야합니다. –