Prosím vás, potřebovala bych pomoc s programem, respektivě doplnit ho,byl by někdo ochotný? Nejsem programátor, potřebuji to v rámci předmětu. Děkuji
Příklad:
Napište třídu SortCSV s metodou main, která ze std. vstupu nebo vstupního souboru přečte soubor ve formátu CSV (Excel, OpenOffice...), setřídí jeho řádky podle zadaného sloupce a vypíše na standardní výstup nebo do výstupního souboru.

Program bude ovládán následujícímí parametry příkazového řádku:

-f=jmenoVstupnihoSouboru - pokud bude zadán, bude jako vstup brát obsah souboru se jménem "jmenoVstupnihoSouboru". Pokud nebude zadán, bere std. vstup.
-o=jmenoVystupnihoSouboru - pokud bude zadán, bude jako výstup brát obsah souboru se jménem "jmenoVystupnihoSouboru". Pokud nebude zadán, vytiskne výsledek na std. výstup.
-c=cisloSloupce - pokud bude zadán, setřídí soubor podle zadaného sloupce. Pokud nebude zadán, setřídí jej podle 1. sloupce.
-t=[text|number] - typ řazení (textový nebo číselný). Pokud nebude zadán, řadíme textově.
Nápověda:

vytvořte si třídu CSV, která bude reprezentovat CSV soubor s vlastnostmi "číslo sloupce, podle kterého se má třídit" a "typ sloupce (číslo, text)".
Uvnitř CSV třídy vytvořte třídu CSVRow, která bude reprezentovat 1 řádek CSV souboru. Datová část CSVRow bude obyčejné pole String-ů
Aby bylo možné řádky navzájem porovnávat, musí CSVRow implementovat interface Comparable a jeho metodu compareTo(...). Tuto vlastnost jistě oceníte při volání metody Arrays.sort(...), která pro potomky Comparable nevyžaduje implementovat zvláštní Comparator.
Datová část třídy CSV bude pole řádků CSV souboru = pole objektů CSVRow. Můžete jej implementovat jako statické pole, ale určitě vám nebude dělat problém zajistit jeho dynamický růst (=realokaci + kopii) v případě, že při ukládání řádků dojde k vyčerpání volného prostoru v poli. Popřípadě - pokud už umíte používat Collections, využijte některou ze tříd Array* (např. ArrayList), která dynamickou realokaci již má implementovanou.
V main-u můžete číst vstupní soubor po celých řádcích. Při ukládání do objektu CSV pak textové řádky můžete na jednotlivé políčka rozdělit metodou String.split(...). Popř. můžete využít java.util.Scanner
Pro méně zdatné uvádím kostru programu, který už je kompletně funkční, stačí jen doplnit kód pro zpracování argumentů příkazové řádky -c, -t, -o (po vložení do Eclipse udělejte Source->Format neboli CTRL+SHIFT+F:
package vyuka;

import java.io.*;

class CSV {

/**

*

* jmeno

*/

enum TypRazeni {TEXTOVE, CISELNE};

int cisloSloupce=0;

TypRazeni typRazeni=TypRazeni.TEXTOVE;

class RadekCSV implements Comparable {

String policka[];

public int compareTo(Object arg0) {

if (typRazeni==TypRazeni.TEXTOVE) {

return policka[cisloSloupce].compareTo(((RadekCSV)arg0).policka[cisloSloupce]);

} else if (typRazeni==TypRazeni.CISELNE) {

return Integer.decode(policka[cisloSloupce])-Integer.decode(((RadekCSV)arg0).policka[cisloSloupce]);

}

return 0;

}

public void print(PrintStream ps) {

for (String solicka) ps.print(s+" ");

}

}

static final int VELIKOST=1024;

RadekCSV radky[]=new RadekCSV[VELIKOST];

int indexRadku=0;

public void pridejRadek(String radek) {

radky[indexRadku]=new RadekCSV();

radky[indexRadku++].policka=radek.split("[;|,]");

if (indexRadku>=radky.length) {

RadekCSV pomPole[]=new RadekCSV[2*radky.length];

System.arraycopy(radky, 0, pomPole, 0, radky.length);

radky=pomPole;

}

}

public void sort() {

java.util.Arrays.sort(radky, 0, indexRadku);

}

public void print(PrintStream ps) {

for (int i=0; i<indexRadku; i++) {

radky[i].print(ps);

ps.println();

}

}

}

public class SortCSV {

public static void main(String[] args) {

InputStream inp=System.in;

PrintStream outp=System.out;

CSV csv=new CSV();

for (String s:args) {

String option=s.substring(0,2);

String value=s.substring(3);

/** TODO V této smyčce procházíme seznam argumentů příkazového řádku

* Dle příkladu pro -f=jmenoVstupnihoSouboru zde doplňtě svůj kód pro zpracování argumentů -o, -t, -c

* /

if (option.equals("-f")) { /* Příklad - zpracování -f= */

try {

inp=new java.io.FileInputStream(value);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

} else if (option.equals("-o")) {
/** TODO zde doplňte svůj kód */

} else if (option.equals("-c")) {
/** TODO zde doplňte svůj kód */

} else if (option.equals("-t")) {
/** TODO zde doplňte svůj kód */

}

}

BufferedReader inb=new BufferedReader(new InputStreamReader(inp));

String str;

try {

while ((str=inb.readLine())!=null) {

csv.pridejRadek(str);

}

} catch (IOException e) {

e.printStackTrace();

}

csv.sort();

csv.print(outp);

}

}