CSV auslesen > Wort bilden > CSV ausgeben

bsc-monkey

Mitglied
Hey,

ich bin Paul und 23 Jahre alt. Seit einer Weile probiere ich mich jetzt an Java und nun möchte ich gerne eine CSV-Datei auslesen und ein Wort aus einer Zeile bilden und dieses wieder in eine CSV-Datei ausgeben.

Meine Frage ist nun wie ich es hin bekomme, dass die CSV-Datei wieder geschrieben wird.

Könnt ihr mir weiterhelfen?

Ich bedanke mich schon mal im Vorraus für Antworten,

Gruß Paul :)
 

bsc-monkey

Mitglied
Also ich hab die Datei mit BufferedReader eingelesen.
Muss ich dann zu BufferedWriter noch etwas bestimmtes hinzufügen, damit das Wort und die Worte aus der ersten CSV-Datei in Spalten geschrieben werden?

Also zum Beispiel bei HTML schreibe ich das ja so, dass ich einen Quelltext hinschreibe und die Daten dann so, wie in dem Quelltext vorgegeben geschrieben werden.

Doch wie ich das bei CSV mache weiß ich nicht.
 
G

Gast2

Gast
Eine CSV Datei ist eine ganz normale Textdatei.
Die kannst du mit nem BufferedWriter schreiben.

Das einfachste wäre wohl sowas:
- komplette Datei einlesen
- Datei bearbeiten
- komplette Datei zurückschreiben
 

bsc-monkey

Mitglied
So also ich habe nun nurnoch genau diesen Fehler im Script. Also erstmal, damit es einmal läuft. Ich muss dann noch einiges verändern, um an mein Ergebnis zu kommen.
So habe ich das nun gemacht:

Java:
file_read = new BufferedReader(new FileReader("word.csv"));
       file_write = new BufferedWriter(new FileWriter("newword.csv"));

       file_write.write();

Was muss ich nun in die letzte Klammer eintragen? Denn dort wird mir der Fehler angezeigt.

PS: anke schonmal für die Hlfe von dir, EikeB :)

Ich hab das letzte einfach komplett rausgenommen und nun ist das Programm gestartet. Also bis hierhin scheint es erstmal zu funktionieren. Jetzt muss noch alles richtig eingelesen werden.
 
Zuletzt bearbeitet:

bsc-monkey

Mitglied
Also irgendwie kann die Datei nicht gelesen werden.
Hier ist mein gesamter Text:

Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

import java.io.*;

/**
  *
  * Beschreibung
  *
  * @version 1.0 vom 13.06.2011
  * @author
  */

public class word extends JFrame {
  // Anfang Attribute
  private JButton jB_auslesen = new JButton();
  private JTextArea jTA_1 = new JTextArea("");
    private JScrollPane jTA_1ScrollPane = new JScrollPane(jTA_1);
  private JButton jB_wiedergeben = new JButton();
  private JTextArea jTA_2 = new JTextArea("");
    private JScrollPane jTA_2ScrollPane = new JScrollPane(jTA_2);
  // Ende Attribute

  public word(String title) {
    // Frame-Initialisierung
    super(title);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    int frameWidth = 648;
    int frameHeight = 594;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2;
    setLocation(x, y);
    Container cp = getContentPane();
    cp.setLayout(null);
    // Anfang Komponenten

    jB_auslesen.setBounds(136, 96, 355, 25);
    jB_auslesen.setText("Auslesen");
    jB_auslesen.setMargin(new Insets(2, 2, 2, 2));
    jB_auslesen.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jB_auslesen_ActionPerformed(evt);
      }
    });
    jB_auslesen.setFont(new Font("Dialog", Font.PLAIN, 13));
    cp.add(jB_auslesen);
    jTA_1ScrollPane.setBounds(136, 144, 353, 113);
    jTA_1.setText("");
    jTA_1.setLineWrap(true);
    cp.add(jTA_1ScrollPane);
    jB_wiedergeben.setBounds(136, 288, 355, 25);
    jB_wiedergeben.setText("Wiedergeben");
    jB_wiedergeben.setMargin(new Insets(2, 2, 2, 2));
    jB_wiedergeben.addActionListener(new ActionListener() {
      public void actionPerformed(ActionEvent evt) {
        jB_wiedergeben_ActionPerformed(evt);
      }
    });
    jB_wiedergeben.setFont(new Font("Dialog", Font.PLAIN, 13));
    cp.add(jB_wiedergeben);
    jTA_2ScrollPane.setBounds(136, 336, 353, 121);
    jTA_2.setText("");
    jTA_2.setLineWrap(true);
    cp.add(jTA_2ScrollPane);
    jTA_2.setFont(new Font("Dialog", Font.PLAIN, 13));
    jTA_1.setFont(new Font("Dialog", Font.PLAIN, 13));
    jTA_2ScrollPane.setViewportView(jTA_2);
    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  // Anfang Methoden
  public void jB_auslesen_ActionPerformed(ActionEvent evt) {
    BufferedReader datei_lesen;
    BufferedWriter datei_schreiben;
    String zeile;
    String s1; String s2; String s3;

     try {
       datei_lesen = new BufferedReader(new FileReader("word.csv"));
       datei_schreiben = new BufferedWriter(new FileWriter("newword.csv"));


       while ((zeile = datei_lesen.readLine()) != null) {
         jTA_1.append(zeile +'\n');
         s1 = zeile.substring(0,zeile.indexOf(';'));
         s2 = zeile.substring(zeile.indexOf(';')+1, zeile.length());
         s3 = zeile.substring(zeile.indexOf(';')+2, zeile.length());
         datei_schreiben.write("+s1+;");
         datei_schreiben.write("+s2+;");
         datei_schreiben.write("+s3+;");

       }
       datei_lesen.close();
       datei_schreiben.write(+'\n');
       datei_schreiben.close();
       System.out.println("Abgeschlossen" );
     } catch (IOException e) {
             System.out.println("Datei kann nicht gelesen werden");
       }
  }



  public void jB_wiedergeben_ActionPerformed(ActionEvent evt) {
    BufferedReader datei;
    String zeile;

     try {
       datei = new BufferedReader(new FileReader("newword.csv"));
       while ((zeile = datei.readLine()) != null) {
         jTA_2.append(zeile +";");
       }
       datei.close();
     } catch (IOException e) {
             System.out.println("Datei kann nicht aus der geschriebenen Datei gelesen werden");
       }
  }

  // Ende Methoden

  public static void main(String[] args) {
    new word("word");
  }
}

Wenn ich das Programm nun starte und ich möchte die CSV-Datei einlesen, dann kommt die Fehlermeldung, sobald ich auf den Button jB_auslesen klicke. Ebenso funktioniert dann auch der zweite Teil mit jB_wiedergeben nicht.

Weiß jemand Rat?
 

Shulyn

Bekanntes Mitglied
Problem ist, welcher File soll benutzt werden? Dann sind deine .write("+s1;+") auch nicht sonderlich erfolgreich...
Das Schreiben von Datein solltest du dir auch nocheinmal ansehen...
Das Design der Class ist auch naja, man sollte nicht 90% des codes in den Konstrucktor packen...

Aber jeder fängt mal an :)
Für das auswählen der Datei würde ich einen FileChooser benutzt... habe das mal in deinen Code eingebaut.

[Java]
package de.volkswagen.aws100p.client.util;

import java.awt.Container;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
import javax.swing.filechooser.FileFilter;

import de.volkswagen.aws100p.client.i18n.I18N;

public class Word extends JFrame {
// Anfang Attribute
private JButton jB_auslesen = new JButton();
private JTextArea jTA_1 = new JTextArea("");
private JScrollPane jTA_1ScrollPane = new JScrollPane(jTA_1);
private JButton jB_wiedergeben = new JButton();
private JTextArea jTA_2 = new JTextArea("");
private JScrollPane jTA_2ScrollPane = new JScrollPane(jTA_2);
// Ende Attribute

private static File file;
private final String[] allowedExtension = { ".csv" };

public Word(String title) {
// Frame-Initialisierung
super(title);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
int frameWidth = 648;
int frameHeight = 594;
setSize(frameWidth, frameHeight);
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int x = (d.width - getSize().width) / 2;
int y = (d.height - getSize().height) / 2;
setLocation(x, y);
Container cp = getContentPane();
cp.setLayout(null);
// Anfang Komponenten

jB_auslesen.setBounds(136, 96, 355, 25);
jB_auslesen.setText("Auslesen");
jB_auslesen.setMargin(new Insets(2, 2, 2, 2));

jB_auslesen.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_auslesen_ActionPerformed(evt);
}
});
jB_auslesen.setFont(new Font("Dialog", Font.PLAIN, 13));
cp.add(jB_auslesen);
jTA_1ScrollPane.setBounds(136, 144, 353, 113);
jTA_1.setText("");
jTA_1.setLineWrap(true);
cp.add(jTA_1ScrollPane);
jB_wiedergeben.setBounds(136, 288, 355, 25);
jB_wiedergeben.setText("Wiedergeben");
jB_wiedergeben.setMargin(new Insets(2, 2, 2, 2));
jB_wiedergeben.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jB_wiedergeben_ActionPerformed(evt);
}
});
jB_wiedergeben.setFont(new Font("Dialog", Font.PLAIN, 13));
cp.add(jB_wiedergeben);
jTA_2ScrollPane.setBounds(136, 336, 353, 121);
jTA_2.setText("");
jTA_2.setLineWrap(true);
cp.add(jTA_2ScrollPane);
jTA_2.setFont(new Font("Dialog", Font.PLAIN, 13));
jTA_1.setFont(new Font("Dialog", Font.PLAIN, 13));
jTA_2ScrollPane.setViewportView(jTA_2);
// Ende Komponenten

setResizable(false);
setVisible(true);
}

// Anfang Methoden
public void jB_auslesen_ActionPerformed(ActionEvent evt) {
BufferedReader datei_lesen;
BufferedWriter datei_schreiben;
String zeile;
String s1;
String s2;
String s3;

final JFileChooser fileopen = new JFileChooser(file);
fileopen.setFileSelectionMode(JFileChooser.FILES_ONLY);
fileopen.setFileFilter(new FileFilter() {
@Override
public String getDescription() {
return "deinText";
}

@Override
public boolean accept(File f) {
for (String extension : allowedExtension) {
if (f.getName().toLowerCase().endsWith(extension) || f.isDirectory()) {
return true;
}
}
return false;
}
});
int ret = fileopen.showDialog(this, "Csv öffnen");
if (ret == JFileChooser.APPROVE_OPTION) {
file = fileopen.getSelectedFile();
} else { // Immer abbrechen, wenn nicht OK betätigt wurde
JOptionPane.showMessageDialog(this, "Abbruch durch Benutzer", "Fehler", JOptionPane.INFORMATION_MESSAGE);
file = null; // File ist null, für später...
}

try {

if(file == null) // Etwas machen wenn File == null ...
return;

datei_lesen = new BufferedReader(new FileReader(file));
datei_schreiben = new BufferedWriter(new FileWriter("newword.csv"));

while ((zeile = datei_lesen.readLine()) != null) {
jTA_1.append(zeile + '\n');
s1 = zeile.substring(0, zeile.indexOf(';'));
s2 = zeile.substring(zeile.indexOf(';') + 1, zeile.length());
s3 = zeile.substring(zeile.indexOf(';') + 2, zeile.length());
datei_schreiben.write(s1);
datei_schreiben.write(s2);
datei_schreiben.write(s3);
}

datei_lesen.close();
datei_schreiben.write(+'\n');
datei_schreiben.close();
System.out.println("Abgeschlossen");

} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void jB_wiedergeben_ActionPerformed(ActionEvent evt) {
BufferedReader datei;
String zeile;

try {
datei = new BufferedReader(new FileReader("newword.csv"));
while ((zeile = datei.readLine()) != null) {
jTA_2.append(zeile + ";");
}
datei.close();
} catch (IOException e) {
System.out.println("Datei kann nicht aus der geschriebenen Datei gelesen werden");
}
}

// Ende Methoden

public static void main(String[] args) {
new Word("Test");
}
}

[/Java]

PS: Class Namen schreibt man den 1. Buchstaben im UpperCase "Word" nicht "word"
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D 1 Wort aus TextDatei auslesen Java Basics - Anfänger-Themen 3
S Daten aus Import Datei auslesen und sortieren Java Basics - Anfänger-Themen 2
T array auslesen Java Basics - Anfänger-Themen 2
I Klassen von einem package laden, Statisches Feld auslesen und Objekt erstellen Java Basics - Anfänger-Themen 8
N Einzelne Werte aus einem TreeSet auslesen Java Basics - Anfänger-Themen 2
D Eclipse will nicht auslesen Java Basics - Anfänger-Themen 6
E TIF Datei auslesen Java Basics - Anfänger-Themen 2
krgewb Breite und Höhe eines Bildes in base64 auslesen Java Basics - Anfänger-Themen 3
sserio TXT-Datei Auslesen und den Wert jedes Namen ausrechnen etc. Java Basics - Anfänger-Themen 37
J Speichern von zwei Variablen durch Auslesen aus einem Numberfield Java Basics - Anfänger-Themen 2
U Sekunden von LocalTime auslesen, wie möglich? Java Basics - Anfänger-Themen 1
E Outlook ordner auslesen Java Basics - Anfänger-Themen 4
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
B Bin komplett am verzweifeln :( Verkettete Liste die Objekte hat Attribut auslesen Java Basics - Anfänger-Themen 14
J Datei aus Netzwerk auslesen Java Basics - Anfänger-Themen 9
J Jsonfile auslesen Java Basics - Anfänger-Themen 8
A Eine Textdatei auslesen Java Basics - Anfänger-Themen 16
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
H Array rückwärts auslesen funktioniert nicht Java Basics - Anfänger-Themen 3
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
AleXusher Mehrdimensionales Array aus txt.file auslesen Java Basics - Anfänger-Themen 4
L Zeichen an bestimmter Stelle auslesen Java Basics - Anfänger-Themen 4
3 Textdatei Zeilenweise auslesen Java Basics - Anfänger-Themen 3
J Json Datei auslesen Java Basics - Anfänger-Themen 4
I Java String einlesen und auslesen Java Basics - Anfänger-Themen 11
S Tastatureingabe auslesen und in Konsole ausgeben Java Basics - Anfänger-Themen 6
S CSV Datei auslesen und anders darstellen Java Basics - Anfänger-Themen 2
G Scanner nutzen und Index auslesen Java Basics - Anfänger-Themen 8
N JTable auslesen Java Basics - Anfänger-Themen 6
N Java CSV Datei auslesen Java Basics - Anfänger-Themen 6
F Webseiten Quelltext auslesen Java Basics - Anfänger-Themen 5
J Datei auslesen (nur bestimmte Stellen) Java Basics - Anfänger-Themen 2
I csv auslesen, mittels List Java Basics - Anfänger-Themen 18
S Letzte Zahl eines Integer auslesen? Java Basics - Anfänger-Themen 3
G If / While Programm (Datei auslesen) Java Basics - Anfänger-Themen 6
S Aus einer .bz2 Datei auslesen Java Basics - Anfänger-Themen 2
K Textdatei auslesen und über Mqtt schicken Java Basics - Anfänger-Themen 4
B Name von Verzeichnis bekommen - Files von einem Ordner auslesen Java Basics - Anfänger-Themen 4
A Daten auslesen/vergleichen Java Basics - Anfänger-Themen 3
D XML von Seite auslesen Jsoup Java Basics - Anfänger-Themen 2
I Druckerauflösung auslesen - mittlerweile möglich? Java Basics - Anfänger-Themen 4
B WSDL auslesen? Java Basics - Anfänger-Themen 8
D Methoden Textdokument erstellen und auslesen. Java Basics - Anfänger-Themen 46
B HTML Code / Seite auslesen und JAVA Objekte erstellen Java Basics - Anfänger-Themen 12
S Datein auslesen und verarbeiten Java Basics - Anfänger-Themen 1
J Geld speichern und wieder auslesen Java Basics - Anfänger-Themen 10
S CSV auslesen UTF-8 Problem Java Basics - Anfänger-Themen 7
D Datei auslesen & Werte in Variable speichern Java Basics - Anfänger-Themen 12
K String buchstaben auslesen Java Basics - Anfänger-Themen 9
S Amazon Produktbeschreibung auslesen und nach Keywords suchen Java Basics - Anfänger-Themen 2
x-tshainge Interface Wie kann ich aus Textfeldern auslesen Java Basics - Anfänger-Themen 6
Z Ersten Buchstaben eines Elements eines String-Arrays auslesen Java Basics - Anfänger-Themen 5
B .txt. Datei auslesen und bestimmten Wert wiedergeben Java Basics - Anfänger-Themen 5
CptK x wert eines Bildes auslesen Java Basics - Anfänger-Themen 1
T Website auslesen Java Basics - Anfänger-Themen 2
T String auslesen bzw. überprüfen Java Basics - Anfänger-Themen 1
L CSV Auslesen Java Basics - Anfänger-Themen 5
B Auslesen von PDF / Bilder Java Basics - Anfänger-Themen 5
das_leon Alle Zeilen einer CSV-Datei auslesen Java Basics - Anfänger-Themen 1
D Mit Java HTML bzw Javascript auslesen Java Basics - Anfänger-Themen 1
F Arrays Sätze speichern und einzelne Worte mit Index Angabe auslesen Java Basics - Anfänger-Themen 4
F Zwischenwerte aus Browser auslesen Java Basics - Anfänger-Themen 19
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
G Servlet - externe HTML (URL) auslesen Java Basics - Anfänger-Themen 1
T class Datei auslesen Java Java Basics - Anfänger-Themen 5
P Liste auslesen und in Variablen speichern Java Basics - Anfänger-Themen 7
D String erste Zahl mit LKZ auslesen lassen Java Basics - Anfänger-Themen 36
J Hashmap auslesen Java Basics - Anfänger-Themen 7
J Auslesen/speichern und wieder einlesen Java Basics - Anfänger-Themen 7
D String untereinander auslesen lassen Java Basics - Anfänger-Themen 2
M Aus Datei auslesen und untersuchen ob diese Zeile schon vorhanden ist Java Basics - Anfänger-Themen 3
DaCrazyJavaExpert Variablen Zahlen aus Strings auslesen Java Basics - Anfänger-Themen 4
J Informationen aus Webseiten auslesen Java Basics - Anfänger-Themen 1
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
M Einzelne Pixel in einem Bild auslesen und bearbeiten Java Basics - Anfänger-Themen 1
dragonfight86 Erste Schritte OpenDocument auslesen Java Basics - Anfänger-Themen 13
I Texte mit Absätzen in Dateien speichern und auslesen Java Basics - Anfänger-Themen 1
W DNS Name auslesen + weitere Anfängerfrage Java Basics - Anfänger-Themen 4
C Werte aus JTable auslesen Java Basics - Anfänger-Themen 4
Chrizzey45 Calc-Dokument in Java auslesen? Java Basics - Anfänger-Themen 2
B Datei auslesen und 2D-Array anlegen Java Basics - Anfänger-Themen 1
B Key auslesen/ausgeben innerhalb von foreach() Java Basics - Anfänger-Themen 5
M Eigenschaften einer Datei auslesen Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
JokerBlacky Klassen Klasse Queue Klasse mit Attributen anhängen und auslesen können Java Basics - Anfänger-Themen 4
Y Bildschirmauflösung auslesen Java Basics - Anfänger-Themen 4
S for schleife auslesen Java Basics - Anfänger-Themen 4
Voreck String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 9
Voreck Array aus txt datei auslesen Java Basics - Anfänger-Themen 2
N JFreeChart --> TimeSeries auslesen Java Basics - Anfänger-Themen 9
OlafHD Datei Auslesen Java Basics - Anfänger-Themen 6
M Metadaten OpenOffice mit Java auslesen Java Basics - Anfänger-Themen 9
P JList, aus selectedValue bestimmten Wert aus Containerklasse auslesen Java Basics - Anfänger-Themen 4
J OpenOffice Dokumentenvariable mit Java auslesen Java Basics - Anfänger-Themen 1
P Daten von Internetseite auslesen Java Basics - Anfänger-Themen 10
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
T Combobox Wert auslesen und damit weiterrechnen Java Basics - Anfänger-Themen 6
J Datei auslesen klappt nicht Java Basics - Anfänger-Themen 4
D String Zeichen für Zeichen auslesen Java Basics - Anfänger-Themen 5
Viktim Website auslesen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben