Hallo liebe Community,
ich habe wieder mal ein Problem.
Ich möchte eine CSV Datei auslesen lassen.
Ich habe mir nun mit einem Freund eine Main Class gebaut die aber durch eine andere Klasse noch erweitert werden muss.
Jedoch bekomme ich genau dieses erweitern nicht hin. Stehe grade total auf dem Schlauch und habe keine Ahnung wie ich das kleine Programm nun zum laufen bringen kann.
Ich hoffe einer von euch kann mir schnell weiter helfen.
Hier also nun mein bisheriger Quellcode:
Main Class:
Hier nun die zweite Klasse:
Mit freundlichen Grüßen
Dino264
ich habe wieder mal ein Problem.
Ich möchte eine CSV Datei auslesen lassen.
Ich habe mir nun mit einem Freund eine Main Class gebaut die aber durch eine andere Klasse noch erweitert werden muss.
Jedoch bekomme ich genau dieses erweitern nicht hin. Stehe grade total auf dem Schlauch und habe keine Ahnung wie ich das kleine Programm nun zum laufen bringen kann.
Ich hoffe einer von euch kann mir schnell weiter helfen.
Hier also nun mein bisheriger Quellcode:
Main Class:
Java:
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class CSVSearch
{
private String[] columnNames;
private File csvfile;
public CSVSearch(String filepath) throws IOException
{
this(new File(filepath));
}
public CSVSearch(File csvfile) throws IOException
{
setCSVFile(csvfile);
initColumnNames();
}
private void initColumnNames() throws IOException
{
columnNames = null;
if (csvfile == null)
return;
BufferedReader br = getLineReader();
String line = br.readLine();
if (line == null)
{
throw new IllegalArgumentException("In " + csvfile.getAbsolutePath() + " fehlt die erste Zeile mit Spaltennamen.");
}
columnNames = line.split(";");
if (columnNames == null || columnNames.length < 1)
throw new IllegalArgumentException("Zu wenige Spalten!");
br.close();
}
public BufferedReader getLineReader() throws FileNotFoundException
{
FileInputStream fstream = new FileInputStream(csvfile);
DataInputStream in = new DataInputStream(fstream);
return new BufferedReader(new InputStreamReader(in));
}
public void setCSVFile(File f)
{
if (f == null || !f.isFile())
throw new IllegalArgumentException("Datei " + f + " nicht gefunden.");
csvfile = f;
}
public List<CSVLine> match(String colname, String srchstring) throws IOException
{
List<CSVLine> mlines = new ArrayList<CSVLine>();
BufferedReader br = getLineReader();
String sline = br.readLine();
while ((sline = br.readLine()) != null)
{
CSVLine line = new CSVLine(columnNames, sline);
if (line.get(colname).contains(srchstring))
{
mlines.add(line);
}
}
br.close();
return mlines;
}
public static void main(String args[]) throws Exception
{
/*
* File f = new File(pfad);
* csvsrch = new CSVSearch(f); (oder = new CSVSearch(pfad);)
* List<CSVLine> zeilen = csvsrch.match(spaltenname, suchbegriff);
* String[] spalten = zeilen.get(0).toArray();
* String csvzeile = zeilen.get(0).encodeCSV();
* csvzeile = zeilen.get(0);
* String inhalt = csvzeile.get(spaltenname);
*/
String dateiname = null;
String name = null;
String suchbegriff = null;
if (args.length == 3)
{
dateiname = args[0]; // Dateiname für Aufruf der Datei
name = args[1]; // Spaltenangabe
suchbegriff = args[2]; // Suchbegriff in der Spalte
} else {
throw new Exception("Applikation benötigt 3 Parameter");
}
CSVSearch csearch = new CSVSearch(dateiname);
List<CSVLine> mlines = csearch.match(name, suchbegriff);
for (int i = 0; i < mlines.size(); i++)
{
System.out.println(mlines.get(0).toString());
}
}
}
Hier nun die zweite Klasse:
Java:
import java.io.BufferedReader;
import java.io.File;
public class CSVLine
{
private String columnNames;
private String source;
private String columns;
public CSVLine(String[] colnames, String linesource)
{
}
public String get(String spaltename)
{
return null;
}
}
Mit freundlichen Grüßen
Dino264