2016-08-31 1 views
0

Ich möchte CSV-Datei ohne Verwendung von opencsv importieren und diese Daten in der Sammlung speichern. Zeichnen Sie aus dieser Sammlung beliebige Daten und zeigen Sie sie auf dem Bildschirm. (Mit Hilfe von Java-Pakete nur vordefinierte Nicht opencsv.)Importieren CSV führen Suche ohne die Verwendung von 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

Außerdem: Das ist ** nicht ** a Frage. Sie haben einige Anforderungen und Code geschrieben; aber du hast uns nichts darüber erzählt, wie wir dir helfen sollen. Mach die Arbeit für dich? – GhostCat

+0

Was passiert, wenn Sie diesen Code ausführen? Erwarten Sie, dass etwas anderes passiert? –

+0

Ich habe diese Ausnahmen: Exception in thread "main" java.lang.NullPointerException & bei panellist.PanelList.main (PanelList.java:69) C: \ Benutzer \ Ankit \ AppData \ Local \ NetBeans \ Cache \ 8.1 \ executor-snippets \ run.xml: 53: Java zurückgegeben: 1 –

Antwort

1

Kurze Antwort: dies nicht tun.

Lange Antwort:

  • Sie nicht das Rad neu erfinden.
  • nicht angenommen, dass Ihr "CSV-Parser" besser als opencsv oder eine andere vorhandene CSV-Parsing-Bibliothek sein wird.
  • Im Gegenteil: Es ist sehr sicher davon auszugehen, dass Ihre Implementierung wird sich übergeben, sobald Sie es einige angemessene komplexe CSV-Eingabe geben.

Wenn wir sprechen "Schule Zuweisung ist über das Schreiben Ihrer eigenen CSV-Parser"; dann schlage ich vor: verbringen Sie eine ganze Zeit Studieren die vielen möglichen Inhalte, die CSV Dateien können Sie überraschen. Dann schaust du vielleicht aus, wie andere Leute solche Probleme gelöst haben. Dann setzt du dich hin; und das erste, was zu tun wäre, wäre zu erkennen, dass das bloße Tokenisieren auf "," es (bei weitem) nicht tun wird.

(Sie sehen, gibt es einen Grund, warum die meisten Menschen für dieses Unternehmen zu bevorzugen - und das ist: es ist keine leichte Aufgabe)

+0

Ich bin wirklich dankbar für Ihren Vorschlag, aber wie Sie erwähnt haben, ist dies ein Schulprojekt. Ich soll eine CSV-Datei importieren und jeden Rekord zufällig ziehen (Bedingungen sollten erfüllt werden). und die folgende Person wird das innere Viva nehmen. Nach einer Woche muss ich die Liste neu laden. –