Input/Output .csv Datei wird beim Lesen bearbeitet?

Gossi

Bekanntes Mitglied
Kann mir einer erklären, warum mein Programm aus einer .csv-Datei:
Code:
12013200191;101576623;35
12013200217;101576623;35
12013200300;101576623;35
12013200437;101576623;35

Eine Datei macht, die genauso aussieht wie die .xls Datei dazu ;(

Hier der Code, der die Datei anfasst

Java:
            if(table.getName().toLowerCase().contains(".xls")) {
                FileInputStream fIn = new FileInputStream(table);
                POIFSFileSystem fileSystem = new POIFSFileSystem(fIn);
                HSSFWorkbook workbook = new HSSFWorkbook(fileSystem);
                HSSFSheet worksheet = workbook.getSheetAt(0);
                @SuppressWarnings("unchecked")
                Iterator<HSSFRow> rows = worksheet.rowIterator();
                i = 0;
                while(rows.hasNext()) {
                    if(i != 0) {
                        HSSFRow row = rows.next();
                        Objects ob = new Objects();
                        Iterator<Object> obList = row.cellIterator();
                        List<Object> objectList = new ArrayList<Object>();
                        while(obList.hasNext()) {
                            Object obj = obList.next();
                            objectList.add(obj);
                        }
                        ob.setObjectList(objectList);
                        objectListTable.add(ob);
                    } else {
                        HSSFRow row = rows.next();
                    }
                    i++;
                }
            } else if(table.getName().toLowerCase().contains(".csv")) {
                FileReader in = new FileReader(table);
                char[] cbuff = new char[5000000];
                in.read(cbuff);
                Objects ob = new Objects();
                List<Object> objList = new ArrayList<Object>();
                String aktuell = "";
                for (char c : cbuff) {
                    if(c == 10 || c == 13) {
                        if(aktuell.length() > 20) {
                            objList.add(aktuell.substring(0, 11));
                            objList.add(aktuell.substring(11, 20));
                            objList.add(aktuell.substring(20));
                            ob.setObjectList(objList);
                            objectListTable.add(ob);
                        }
                        ob = new Objects();
                        objList = new ArrayList<Object>();
                        aktuell = "";
                    } else if(c >= 48 && c <= 57) {
                        aktuell += c;
                    }
                }
            }
 
M

maki

Gast
Verstehe die frage nicht so ganz...

Kann mir einer erklären, warum mein Programm aus einer .csv-Datei:
...
Eine Datei macht, die genauso aussieht wie die .xls Datei dazu
Du zeigst den Code nicht der die datei so aussehen lässt wie eine Excel Datei ;)
 

Gossi

Bekanntes Mitglied
Du zeigst den Code nicht der die datei so aussehen lässt wie eine Excel Datei ;)

Richtig, weil es ihn nicht gibt, das is ja das Problem welches ich nicht verstehe.....

Hier mal bissl mehr Code:

Der Methodenaufruf:
Java:
   public void showDiff() {
        //Setzen der benoetigten Variablen
        String jj = comboJj.getSelectedItem().toString();
        if (jj.length() == 1) {
            jj = "0" + jj;
        }
        String mm = "" + (comboMm.getSelectedIndex() + 1);
        if (mm.length() == 1) {
            mm = "0" + mm;
        }
        String jjmm = jj + mm;
        String mandantbereich = (comboMandantBereich.getSelectedIndex()) + "";
        String mandantnummer = (comboMandant.getSelectedIndex() + 1) + "";
        File inOut = new File("");
        //SQL-Statement
        String sql = "select * from something";
        try {
            List<Objects> errList;
            //Wenn eine Datei ausgewaehlt wurde
            if (!textDatPath.getText().equals("")) {
                //inOut setzen
                inOut = new File(textDatPath.getText().replace("\\\\", "/"));
                errList = Abgleich.compareTableAndDb(Abgleich.getConnection(jjmm).executeQuery(sql), inOut);
            } else {
                //Eine Excel-Tabelle anlegen mit allen Werten aus der DB
                inOut = new File("apoi-test.xls");
                errList = Abgleich.compareTableAndDb(Abgleich.getConnectionCreateTable(sql, inOut, jjmm).executeQuery(sql), inOut);
            }

            boolean isFirst = true;
            //Fehlertabelle neu aufbauen
            for (int i = ((DefaultTableModel) tableFehler.getModel()).getRowCount() - 1; i >= 0; i--) {
                ((DefaultTableModel) tableFehler.getModel()).removeRow(i);
            }
            for (Objects objects : errList) {
                if (isFirst) {
                    textDatensaetze.setText(objects.getObjectList().get(0) + "");
                    isFirst = false;
                } else {
                    ((DefaultTableModel) tableFehler.getModel()).addRow(objects.getObjectList().toArray());
                }
            }
        } catch (SQLException ex) {
            Logger.getLogger(EOAbgleichView.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

Die Aufgerufene Methode:
Java:
    public static Statement getConnection(String jjmm) throws SQLException {
        try {
            Connection con = DriverManager.getConnection("xxxxxxxx", "xxxxxx", "xxxxxxx");
            Statement stm = con.createStatement();
            return stm;
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return DriverManager.getConnection("xxxxxxxx", "xxxxxx", "xxxxxxx").createStatement();

    }


@SuppressWarnings({"unchecked", "CallToThreadDumpStack"})
    public static List<Objects> compareTableAndDb(ResultSet rs, File table) {
        int errorCount = 0;
        List<Objects> errList = new ArrayList<Objects>();
        try {
            List<Objects> objectListTable = new ArrayList<Objects>();
            int i = 0;
            if(table.getName().toLowerCase().contains(".xls")) {
                FileInputStream fIn = new FileInputStream(table);
                POIFSFileSystem fileSystem = new POIFSFileSystem(fIn);
                HSSFWorkbook workbook = new HSSFWorkbook(fileSystem);
                HSSFSheet worksheet = workbook.getSheetAt(0);
                @SuppressWarnings("unchecked")
                Iterator<HSSFRow> rows = worksheet.rowIterator();
                i = 0;
                while(rows.hasNext()) {
                    if(i != 0) {
                        HSSFRow row = rows.next();
                        Objects ob = new Objects();
                        Iterator<Object> obList = row.cellIterator();
                        List<Object> objectList = new ArrayList<Object>();
                        while(obList.hasNext()) {
                            Object obj = obList.next();
                            objectList.add(obj);
                        }
                        ob.setObjectList(objectList);
                        objectListTable.add(ob);
                    } else {
                        HSSFRow row = rows.next();
                    }
                    i++;
                }
            } else if(table.getName().toLowerCase().contains(".csv")) {
                FileReader in = new FileReader(table);
                char[] cbuff = new char[5000000];
                in.read(cbuff);
                Objects ob = new Objects();
                List<Object> objList = new ArrayList<Object>();
                String aktuell = "";
                for (char c : cbuff) {
                    if(c == 10 || c == 13) {
                        if(aktuell.length() > 20) {
                            objList.add(aktuell.substring(0, 11));
                            objList.add(aktuell.substring(11, 20));
                            objList.add(aktuell.substring(20));
                            ob.setObjectList(objList);
                            objectListTable.add(ob);
                        }
                        ob = new Objects();
                        objList = new ArrayList<Object>();
                        aktuell = "";
                    } else if(c >= 48 && c <= 57) {
                        aktuell += c;
                    }
                }
            } else {
                System.out.println("Fehler beim Datenimport");
                Objects ob = new Objects();
                List<Object> objList = new ArrayList<Object>();
                objList.add("Fehler beim Datenimport");
                objList.add("Kein Unterstueztes Dateiformat");
                objList.add("Bitte nur Datein mit den folgenden Endungen benutzen");
                objList.add(".csv und .xls");
                ob.setObjectList(objList);
                errList.add(ob);
            }
            i = 1;
            ResultSetMetaData meta = rs.getMetaData();
            int columns = meta.getColumnCount();
            List<Objects> objectListDb = new ArrayList<Objects>();
            while(rs.next()) {
                Objects ob = new Objects();
                List<Object> obj = new ArrayList<Object>();
                for (int j = 1; j < columns; j++) {
                    Object cellBereich;
                    cellBereich = rs.getString(j);
                    obj.add(cellBereich);
                }
                ob.setObjectList(obj);
                objectListDb.add(ob);
            }
            int count = 0;
            if(objectListDb.size() == objectListTable.size()) {
                count = objectListDb.size();
            } else if(objectListDb.size() > objectListTable.size()) {
                System.out.println("Die Datenbank beinhaltet mehr Zeilen");
                count = objectListTable.size();
            } else if(objectListDb.size() < objectListTable.size()) {
                System.out.println("Die Tabelle beinhaltet mehr Zeilen");
                count = objectListDb.size();
            }
            Objects ob = new Objects();
            List<Object> objList = new ArrayList<Object>();
            objList.add(count);
            ob.setObjectList(objList);
            errList.add(ob);
            ob = new Objects();
            objList = new ArrayList<Object>();
            for (int j = 0; j < count; j++) {
                for (int x = 0; x < objectListDb.get(j).getObjectList().size(); x++) {
                    Object obDb = objectListDb.get(j).getObjectList().get(x);
                    Object obTable = objectListTable.get(j).getObjectList().get(x);
                    if((obDb == null && obTable == null) || (obDb.toString().equals(obTable.toString()))) {
                        // Todo: nothing
                    } else {
                        ob =  new Objects();
                        objList = new ArrayList<Object>();
                        objList.add(j);
                        objList.add(x+1);
                        if (obDb == null) {
                            objList.add("null");
                        } else {
                            objList.add(obDb);
                        }
                        if (obTable == null) {
                            objList.add("null");
                        } else {
                            objList.add(obTable);
                        }
                        ob.setObjectList(objList);
                        errList.add(ob);
                        errorCount++;
                        System.out.println("Ungleiches Element an Position " + j + ":" + x + " DB: null | Tabelle: " + obTable);
                    }
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return errList;
    }

Erledigt, schon blöd wenn man .getConnectionCreateTable aufruft, obwohl man nur .getConnection haben will -.-
 
Zuletzt bearbeitet:

faetzminator

Gesperrter Benutzer
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
M Verständnisfrage: Warum wird die Datei ohne Inhalt übertragen Java Basics - Anfänger-Themen 3
S Datei anlegen Problem! Groß- und Kleinschreibung wird nicht unterschieden Java Basics - Anfänger-Themen 4
G String wird nach Einlesen aus Datei nicht erkannt Java Basics - Anfänger-Themen 3
J bundel - Datei wird nicht gefunden. Trotz STRG-SHIFT-J Java Basics - Anfänger-Themen 2
T PNG Datei wird nur manchmal geöffnet Java Basics - Anfänger-Themen 6
H .class Datei wird nicht ausgeführt Java Basics - Anfänger-Themen 2
S png Datei wird nicht erkannt Java Basics - Anfänger-Themen 6
I Datei wird von anderen Prozess verwendet Java Basics - Anfänger-Themen 10
W Datei wird aus resources unter Windows nicht kopiert Java Basics - Anfänger-Themen 1
chuxXo Input/Output CSV Datei wird nicht ganz ausgelesen Java Basics - Anfänger-Themen 5
I Bei Umlauten und Leerzeichen im Pfad, wird Datei nicht gefunden Java Basics - Anfänger-Themen 5
T Datei wird nicht gelöscht mit file.delete() Java Basics - Anfänger-Themen 5
A Leere Datei wird ohne Inhalt geschrieben, obwohl Inhalt geschrieben wurde. Java Basics - Anfänger-Themen 4
Fab1 alte Java Datei wird ausgeführt (trotz Änderung) Java Basics - Anfänger-Themen 4
O Downloaden: Trotz If Abfrage wird Datei heruntergeladen Java Basics - Anfänger-Themen 2
1 Integer wird falsch in Datei geschrieben Java Basics - Anfänger-Themen 13
H datei wird zwar erstellt, aber nichts geschrieben Java Basics - Anfänger-Themen 2
S Inhalt der Datei wird nicht kopiert ??? Java Basics - Anfänger-Themen 5
Developer_X Datei wird nicht wie gewünscht gespeichert Java Basics - Anfänger-Themen 7
D Datei wird nicht gelesen! Java Basics - Anfänger-Themen 2
G Log-Datei wird nur in Eclipse aber nicht auf Tomcat erzeugt Java Basics - Anfänger-Themen 5
P Methode zum Überprüfen ob Datei verwendet wird? Java Basics - Anfänger-Themen 3
D Datei wird immer wieder überschrieben Java Basics - Anfänger-Themen 2
raptorrs Einzulesende Datei wird nicht erkannt Java Basics - Anfänger-Themen 5
E Datei wird nicht geschrieben Java Basics - Anfänger-Themen 7
G properties Datei in jar-File wird nicht gefunden Java Basics - Anfänger-Themen 5
C Datei wird nicht erzeugt Java Basics - Anfänger-Themen 3
A Hauptklasse wird nicht in JAR-Datei gefunden Java Basics - Anfänger-Themen 11
T Datei wird nicht gefunden - Warum? Java Basics - Anfänger-Themen 2
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
E Audio Datei unter Bedingungen ausführen Java Basics - Anfänger-Themen 19
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
A exe Datei erstellen Java Basics - Anfänger-Themen 8
J .jar datei öffnen funktioniert nicht Java Basics - Anfänger-Themen 17
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
W Fehler in der Datei pom.xml Java Basics - Anfänger-Themen 19
D Jar Datei startet unter Linux nicht Java Basics - Anfänger-Themen 3
P Probleme mit NetBeans: Wie lässt sich jar. Datei an einem MacBook öffnen Java Basics - Anfänger-Themen 21
N Programm Funktioniert mit .txt Datei aber nicht mit .rtf Datei Java Basics - Anfänger-Themen 2
A Wie führe ich eine Batch-Datei von meiner Java-Anwendung aus? Java Basics - Anfänger-Themen 18
D Java Programm mit Batch-Datei starten Java Basics - Anfänger-Themen 32
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
B von Java/Eclipse verwendete Datei existiert gar nicht? Java Basics - Anfänger-Themen 6
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M Daten aus .txt Datei einlesen und weiterverarbeiten Java Basics - Anfänger-Themen 80
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
I Datei (Bild) Drucken und wie Druckeinstellung speichern? Java Basics - Anfänger-Themen 3
A CSV-Datei Verarbeiten Java Basics - Anfänger-Themen 8
D Downloadfortschritt von Datei über Google Drive API v3 Java Basics - Anfänger-Themen 10
A CSv.Datei einlesen und die werte in zweidemosional Int Array speichern Java Basics - Anfänger-Themen 9
B Den Dateipfad einer Java Datei durch Code in Selbiger finden? Java Basics - Anfänger-Themen 10
S In Datei schreiben in Java? Java Basics - Anfänger-Themen 1
Saiko Zeilen einer Datei einlesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
sserio Txt Datei einlesen Java Basics - Anfänger-Themen 9
T Printwriter Datei nicht überschreiben Java Basics - Anfänger-Themen 10
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
berserkerdq2 Wie gebe ich den Pfad zu einer Datei an, die in einem Ordner in Eclipse ist? Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
J selbst erstellte Datei mit Programm öffnen Java Basics - Anfänger-Themen 10
J int innerhalb einer Datei ändern Java Basics - Anfänger-Themen 1
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
julian112 Input/Output .gz bzw. .txt Datei Einlesen und Umgang mit Exceptions Java Basics - Anfänger-Themen 1
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
E extern Datei von meinem Computer aufmachen Java Basics - Anfänger-Themen 5
H Scripte oder Programmcode aus Datei lesen? Java Basics - Anfänger-Themen 5
E PDF Datei im xfdf-Datei umwandeln und auf dem Laufwerk ablegen Java Basics - Anfänger-Themen 0
J CSV-Datei verarbeiten Java Basics - Anfänger-Themen 27
A Verarbeiten einer Excel Datei durch das java-Programm Java Basics - Anfänger-Themen 3
P Datei einlesen, nach Begriff filtern und in Datei ausgeben. Problem Standardausgabe über Konsole Java Basics - Anfänger-Themen 19
nbergmann Installation unter jdk.java.net: Keine ZIP-Datei zum entpacken Java Basics - Anfänger-Themen 2
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
EchtKeineAhnungManchmal hallo habe ein Problem mit einer Datei -> (Zugriff verweigert) Java Basics - Anfänger-Themen 4
EchtKeineAhnungManchmal Controller aus FXML Datei entfernen Java Basics - Anfänger-Themen 49
I Probleme mit OutputStream - Datei lässt sich nicht öffnen Java Basics - Anfänger-Themen 4
Kotelettklopfer Sqlite DB aus Java Datei ansprechen. Java Basics - Anfänger-Themen 147
C XML Datei speichern und laden Java Basics - Anfänger-Themen 18
M Von einem Menü Methode aus anderer Klasse ausführen, die errechnete Werte in Datei schreibt. Java Basics - Anfänger-Themen 8
C XML Datei schreiben Java Basics - Anfänger-Themen 14
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
J Wert in einer json Datei ändern und speichern Java Basics - Anfänger-Themen 3
L Java erstellt leere Datei Java Basics - Anfänger-Themen 8
J Json Datei auslesen Java Basics - Anfänger-Themen 4
J In main() Datei geöffnet, von anderer Funktion beschreiben Java Basics - Anfänger-Themen 3
I JAX-WS.... Datei ".ical" zurückgeben.... Wie annotieren? Java Basics - Anfänger-Themen 1
O zweidimensionales array in eine csv-Datei Java Basics - Anfänger-Themen 1
CptK Richtigen Pfad beim einlesen von Datei finden Java Basics - Anfänger-Themen 2
E Pfadangaben bei Ausführbarer Jar Datei Java Basics - Anfänger-Themen 8
J Input/Output Konstruktor ergänzen, der zur Datei mit einem Objekt passt Java Basics - Anfänger-Themen 0
I Datei als Stream aus Ressource laden? Java Basics - Anfänger-Themen 2
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
R Wie installiere ich Jdownloadersetup.sh datei mit debian Java Basics - Anfänger-Themen 2
J Csv-Datei einlesen Java Basics - Anfänger-Themen 52
H Daten aus einer Datei in eine Liste speichern Java Basics - Anfänger-Themen 23
W Java in Exe Datei umgewandelt, Ressourcen fehlen (Bilder und Audiodateien) Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Neue Themen


Oben