Input/Output Text Dateien einlesen, bearbeiten und speichern

Lara_B

Mitglied
Hallo ihr Lieben

Ich will mit Java folgendes realisieren:

Ich habe eine Text-Datei mit m-Zeilen und n-Spalten, also wie eine Tabelle aufgebaut. Die Spalten werden durch Leerzeichen getrennt. Hier als Beispiel ein kleiner Auszug aus solch einer Datei:

Beispiel: 4 Zeilen und 11 Spalten
HETATM 1 N LIG 1 2.824 -0.042 0.738 1.00 0.00 N
HETATM 2 C LIG 1 3.563 -1.141 0.333 1.00 0.00 C
HETATM 3 O LIG 1 4.781 -1.166 0.347 1.00 0.00 O
HETATM 4 N LIG 1 2.850 -2.279 -0.120 1.00 0.00 N

Nun möchte ich ein Java Programm schreiben, welches solch eine Text-Datei einliest und "elementare Zeilen- und Spaltenoperationen" durchführt und dies danach in eine neue Text-Datei schreibt.

Zum Beispiel ein Programm, welches die 3. Spalte mit der 1. Spalte vertausch und die 6., 7. und 8. Spalte mit der 2., neuen 3. und 4. vertauscht und die restlichen Spalten löscht. In dem Beispiel würde das bedeuten:

N 2.824 -0.042 0.738
C 3.563 -1.141 0.333
O 4.781 -1.166 0.347
N 2.850 -2.279 -0.120

Wie macht man so etwas mit Java?

Vielen Dank für Hilfe.

Grüsse
Lara
 
S

SlaterB

Gast
man macht es einen Schritt nach dem anderen,
wenn du von Java all die Standard-Befehle, etwa eine Datei in ein String einlesen, einen String in eine Datei speichern,
einen String in der Mitte durchschneiden usw. nicht kennst,
dann kann man dazu auch nicht viel sagen, alle 400 benötigten Code-Zeilen aufzuzählen wäre etwas mühsam ;)

lies ein Lehrbuch von Anfang bis Ende bzw. schaue im Index nach String- und Dateimethoden, alles leicht zu finden
 

njans

Top Contributor
Zeilenoperationen sind kein Problem.
Du kannst das ganze mit einem [JAPI]BufferedReader [/JAPI]einlesen und in einer [JAPI]List[/JAPI] speichern.
Dann hast du jede Zeile in der richtigen Ordnung in dieser Liste und kannst an der Veränderungen durchführen.

Bei Spaltenoperationen musst du die Strings vorher splitten und die eventuell ebenfalls in einer Liste Speichern.
 

Lara_B

Mitglied
Danke für die zügigen Antworten. Ich bin noch blutige Anfängerin, lerne aber fleissig (bin bei Seite 78 :) ) mit dem Buch von Dietmar Ratz - Grundkurs Programmieren in Java: Band 1. Ich kenne bis jetzt nur die IOTools um Eingaben zu machen. Nun habe ich ein paar Begriffe bekommen nach denen ich recherchieren kann. Java lernen muss ich aus beruflichen gründen.

Zeilenoperationen will ich erst später machen. Jetzt will ich erst einmal lernen wie man Spalten vertauscht. Später sollen auch Zeilen getauscht werden.


Dazu eine neue Frage:

Gibt es in Java eine Klasse oder etwas das man importieren kann, welche Variablen direkt als Matrix betrachtet? Könnte man dann nicht die ganze Datei direkt als Matrix einlesen und bearbeiten mit Befehlen, die gezielt Spalten tauschen etc.?

Liebe Grüsse
Lara
 

Jodo

Aktives Mitglied
Hi,

standardmäßig gibt's keine Matrix-Klasse. Du kannst aber wie oben schon genannt die Datei Zeilenweise in eine Liste (die Array-Objekte hält) bzw ein 2-Dimensionales-Array einlesen. Letzteres jedoch nur, wenn Zeilenanzahl der Datei bekannt.

Dann kannst du auf der Liste/dem Array die ganzen Vertauschungen durchführen.

Gruß
Jodo.
 

AquaBall

Top Contributor
Wenn du mal eingelesen hast, dann ist's mit
Java:
String[] array = eingabe.split(" ");
schnell zerlegt.
Aber das ganze Programm wird dir hier wohl keiner vortippen.
 

ARadauer

Top Contributor
Gibt es in Java eine Klasse oder etwas das man importieren kann, welche Variablen direkt als Matrix betrachtet? Könnte man dann nicht die ganze Datei direkt als Matrix einlesen und bearbeiten mit Befehlen, die gezielt Spalten tauschen etc.?
Nein so etwas spezielles bietet java mit boardmitteln nicht, ist aber nicht schwer sowas zu schreiben...
 

Lara_B

Mitglied
Okay, danke euch für die Hilfe. Ich werde mein Buch weiter lesen und nach den neuen Begriffen, die hier genannt wurden, recherchieren und melde mich dann zu diesen, oder meinem Problem wieder.

Liebe Grüsse
Lara

p.s.
@AquaBall
Das möchte ich auch gar nicht. Ich muss es doch selbst lernen, sonst killt mich meine Chefin vermutlich, doch ich bin wie gesagt erst ganz kurz dabei, also learning by doing
 

GUI-Programmer

Top Contributor
Vielleicht hilft dir auch das weiter - Google Suche nach "java tabelle csv einlesen":
Tutorials.de hat gesagt.:
Java:
public static void main(String[] args) {
 
    // Einlesen des Files und spliten
    FileReader myFile = null;
    BufferedReader buff = null;
    final List<String> lines = new ArrayList<String>();
 
    try {
        myFile = new FileReader("zahlen.csv");
        buff = new BufferedReader(myFile);
        String line;
        while ((line = buff.readLine()) != null) {
            System.out.println(line); // kontrolle was eingelesen
 
            lines.add(line);
        }
    } catch (IOException e) {
        System.err.println("Error2 :" + e);
    } finally {
        try {
            buff.close();
            myFile.close();
        } catch (IOException e) {
            System.err.println("Error2 :" + e);
        }
    }
 
    final String[][] valuesArray = new String[lines.size()][];
    int cnt = 0;
    for (final String line : lines) {
        valuesArray[cnt++] = line.split(",");
    }
 
    // Ausgabe des Array
    for (String[] arr : valuesArray) {
        System.out.println(Arrays.toString(arr));
    }
}

Nur musst du in Zeile eben deine Datei angeben und in Zeile 31 anstelle von
Code:
valuesArray[cnt++] = line.split(",");
Code:
valuesArray[cnt++] = line.split(" ");
schreiben, da bei dir ja die Spalten durch ein Leerzeichen getrennt sind (warum auch immer!?!).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Datentypen Text Dateien einlesen Java Basics - Anfänger-Themen 3
T Classpath Problem mit dem auslesen von Text-Dateien (Pfad) Java Basics - Anfänger-Themen 3
N Java Programm zum Suchen und Ersetzen von Text Dateien Java Basics - Anfänger-Themen 10
N Lesen aus (Text)Dateien Java Basics - Anfänger-Themen 7
R Collections Text-Dateien auf Gleichheit überprüfen Java Basics - Anfänger-Themen 22
K 2 Text-Dateien vergleichen Java Basics - Anfänger-Themen 11
C Problem mit Lesen und Speichern und Verarbeiten von großen Text Dateien Java Basics - Anfänger-Themen 5
D text dateien mit RandomAccessFile manipulieren Java Basics - Anfänger-Themen 6
G Dateien erstellen / Text in Dateien schreiben Java Basics - Anfänger-Themen 8
C Text Dateien aus einem Ordner auslesen? Java Basics - Anfänger-Themen 3
S Große Text dateien einbinden Java Basics - Anfänger-Themen 3
G Text aus verschiedenen Dateien in JTextArea laden Java Basics - Anfänger-Themen 3
richis-fragen JTable effektiv angezeigter Text ausgeben nicht Inhalt vom Model Java Basics - Anfänger-Themen 9
A Edit Text Negative Decimalzahlen Java Basics - Anfänger-Themen 18
P Aus Text Datei nur Zahlen übernehmen Java Basics - Anfänger-Themen 13
T Text einlesen code was kommt dahin? Java Basics - Anfänger-Themen 1
R Text in der DB abspeichern, und danach bearbeiten Java Basics - Anfänger-Themen 5
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
JavaBeginner22 Button Text verändern Java Basics - Anfänger-Themen 1
GoenntHack Java Text von JLabel verändert sich nicht Java Basics - Anfänger-Themen 1
A Text zu Morsecode Java Basics - Anfänger-Themen 8
O Java Text Area Zeilenausgabe Java Basics - Anfänger-Themen 7
M Text wird in der Console nicht ausgegeben. Java Basics - Anfänger-Themen 11
berserkerdq2 An selbst ersteller txt Datei immer Text dranhängen, ohne den vorherign Text zu löschen Java Basics - Anfänger-Themen 8
M Text in Datei schreiben Java Basics - Anfänger-Themen 9
T208 Text Datei individuell benennen. Java Basics - Anfänger-Themen 5
A Werten aus dem Text ausliesten Java Basics - Anfänger-Themen 6
K Jlabel mit itemlistevent Text gegeben, wird nicht angezeigt Java Basics - Anfänger-Themen 5
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
O Text mit Regex trennen und wieder zusammenbauen Java Basics - Anfänger-Themen 5
xFlozen Text mehrspaltig ausgeben Java Basics - Anfänger-Themen 3
S Zufällige ungerade Zeile aus Text-Datei lesen Java Basics - Anfänger-Themen 5
K Rekursiver Vergleich von Textmuster und Text Java Basics - Anfänger-Themen 2
C Variablen Provided text for message may not be null Java Basics - Anfänger-Themen 9
H Klassen Die Länge einer Text-Node bestimmen Java Basics - Anfänger-Themen 2
F Erste Schritte java.util.Scanner: Beliebig langen Text per Paste in Console eingeben ? Java Basics - Anfänger-Themen 14
GermanPie Discord Text Channel erstellen? Java Basics - Anfänger-Themen 1
C JButton Text 2 Mal ändern funktioniert nicht Java Basics - Anfänger-Themen 8
yoskaem Text Color durch Klicken eines Buttons in anderer Activity ändern Java Basics - Anfänger-Themen 2
B Alle Links in einem Text suchen und ersetzen mit einem neuen Link Java Basics - Anfänger-Themen 18
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
B Text-Datei nur in Stream speichern und dann ausgeben Java Basics - Anfänger-Themen 3
M Java: BufferedReader liest nur die Hälfte der Text-Datei. Java Basics - Anfänger-Themen 4
M Apache POI PPT - Vertikales Alignment von Text im XSLFAutoShape Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
P Text Datei einlesen und übertragen Java Basics - Anfänger-Themen 15
P Taschenrechner Text übertragung Java Basics - Anfänger-Themen 3
J java.text.DecimalFormat Java Basics - Anfänger-Themen 5
AnnaBauer21 GridBagLayout JLabel weightx: Unterschiedliche Breite mit & ohne Text Java Basics - Anfänger-Themen 6
K Durch eine Text eingabe etwas Ausführen Java Basics - Anfänger-Themen 5
S Text-To-Speech mit Java Java Basics - Anfänger-Themen 2
L Text-Adventure Java Basics - Anfänger-Themen 3
M Input/Output Java Swing: Prüft ob Text aus JTextField ausschließlich Integer enthält Java Basics - Anfänger-Themen 15
ruutaiokwu Ausgegebene Zeile ersetzen mit neuem Text Java Basics - Anfänger-Themen 3
tsom Erste Schritte itext Text als Block auf neue Seite Java Basics - Anfänger-Themen 0
Dimax Programme ,als Text in MySql speichern Java Basics - Anfänger-Themen 7
Harlequin Compiler-Fehler Text Adventure - "Long Output" Fehler Java Basics - Anfänger-Themen 3
S Zeichen zählen kopierter Text Java Basics - Anfänger-Themen 6
D Text als Code in java-forum.com formatieren. Wie ? Java Basics - Anfänger-Themen 3
F Schreibprogramm nur markierten Text in kursiv oder fett schreiben Java Basics - Anfänger-Themen 3
A Rechnen mit Text und Zahl Java Basics - Anfänger-Themen 4
MaximilianTM Input/Output Einlesen und bearbeiten einer text Datei / Zeile Java Basics - Anfänger-Themen 5
M Erste Schritte Verschlüsselung von text Java Basics - Anfänger-Themen 21
S Text aus einer HTML Datei auslesen Java Basics - Anfänger-Themen 1
S Java Text splitten mit Tabs, Zeilen, Zeichen und Klammern. Java Basics - Anfänger-Themen 6
M Beliebigen Text in *** umwandeln Java Basics - Anfänger-Themen 15
K (JTable) Text einer Zelle auf der linken Seite kürzel Java Basics - Anfänger-Themen 2
H Suche in Text und Markierung Java Basics - Anfänger-Themen 14
H Suche in einem Text Java Basics - Anfänger-Themen 17
F Input/Output Text einlesen lassen Java Basics - Anfänger-Themen 14
L Text eingeben und im Textfeld auslesen lassen Java Basics - Anfänger-Themen 2
R Best Practice Palindrom in einem Text finden Java Basics - Anfänger-Themen 18
J Text Datei einlesen Java Basics - Anfänger-Themen 6
L Text und Ganzzahl in einer Dialogbox Java Basics - Anfänger-Themen 5
D Text Adventure Erstellen Java Basics - Anfänger-Themen 10
T Jlabel durch Text in 2 anderen Jlabels sichtbar machen Java Basics - Anfänger-Themen 4
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D Bild zu Text Java Basics - Anfänger-Themen 4
L Text/Befehle zu Programmen senden Java Basics - Anfänger-Themen 1
L Java Text datei nur bis zu einem Punkt auslesen? Java Basics - Anfänger-Themen 3
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
S Java Label hat komischen text Java Basics - Anfänger-Themen 4
F Text anhand bestimmter Trennzeichen in Textteile trennen (netbeans) Java Basics - Anfänger-Themen 7
S Ausgabe von Text Formatieren Java Basics - Anfänger-Themen 6
H Text in einen Button quetschen Java Basics - Anfänger-Themen 3
A Text mit "Scanner" eingeben und Umlaute ersetzen Java Basics - Anfänger-Themen 7
A Text teilen und Wörter zählen Java Basics - Anfänger-Themen 7
J Zahlen als Text übersetzen Java Basics - Anfänger-Themen 6
F Erste Schritte Label Text vor Methodenaufruf setzen Java Basics - Anfänger-Themen 17
R Text Pane Aktualisierung erst nach JOptionPane Java Basics - Anfänger-Themen 10
I BufferedReader Text-Datei einlesen??? Java Basics - Anfänger-Themen 1
S Wort in Text suchen und ersetzen Java Basics - Anfänger-Themen 3
V Interface ich schäme mich das zu fragen, aber ich schaff nicht ein Text zu zentrieren :( [javaFX] Java Basics - Anfänger-Themen 6
M Input/Output Text auf Fenster zeichen Java Basics - Anfänger-Themen 2
W Klassen Fehler bei public void setLabelText(JLabel label, String text) Java Basics - Anfänger-Themen 11
Chava Testprojekt.Text.Image.Button Java Basics - Anfänger-Themen 4
Z JSlider - Text wird nich angezeigt Java Basics - Anfänger-Themen 0
A Problem mit set.Text und übergabe Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben