Zum Inhalt springen

Ausgabe wird in der .txt immer überschrieben????


MikeX

Empfohlene Beiträge

Hallo,

wieso überschreibt er meine Daten in der txt wenn ich den 2. Ds eingebe =? dürfte er doch eigentlich nicht oder=?

und wie kann ich die Ausgabe in der txt formatieren, sodass für vorname->13Zeichen, nachname-->13Zeichen, Tel-->15Zeichen vorh. sind =?

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;

public class txtdsin
{
public static void main(String[] args)
{

final String path = "test.txt";
Display display = new Display();

Shell shell = new Shell(display);
shell.setToolTipText("made by M. W.");
shell.setText("Datenbankeingabe");

Button hinzbut = new Button(shell, SWT.PUSH);
hinzbut.setText("Hinzufügen");
hinzbut.setBounds(60, 200, 80, 30);

Button ende = new Button(shell, SWT.PUSH);
ende.setText("Ende");
ende.setBounds(140, 200, 80, 30);

Label lfirstname = new Label(shell, SWT.NONE);
lfirstname.setText("Vornamen:");
lfirstname.setBounds(50, 30, 70, 15);

final Text t1 = new Text(shell, SWT.BORDER);
t1.setBounds(140, 25, 90, 20);

Label lsirname = new Label(shell, SWT.NONE);
lsirname.setText("Nachnamen:");
lsirname.setBounds(50, 80, 70, 15);

final Text t2 = new Text(shell, SWT.BORDER);
t2.setBounds(140, 75, 90, 20);

Label ltel = new Label(shell, SWT.NONE);
ltel.setText("Telefonnummer:");
ltel.setBounds(50, 130, 80, 15);

final Text t3 = new Text(shell, SWT.BORDER);
t3.setBounds(140, 125, 90, 20);

ende.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
System.exit(0);
}
});
hinzbut.addSelectionListener(new SelectionAdapter()
{
public void widgetSelected(SelectionEvent e)
{
String vn = null;
String n = null;
String tel = null;

vn = t1.getText();
n = t2.getText();
tel = t3.getText();
try {
BufferedWriter out = new BufferedWriter(new FileWriter(path));
out.write(vn + n + tel);
out.newLine();
out.close();
} catch (IOException e1) {
}
}
});

shell.setSize(300, 300);
shell.open();

while (!shell.isDisposed())
{
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}[/PHP]

Link zu diesem Kommentar
Auf anderen Seiten teilen

Die Datei wird immer wieder neu angelegt, weil Du dem FileWriter nicht sagst, dass Du an die Datei anhängen willst. Die API Doc zu FileWriter gibt Dir die entsprechende Info (-> Konstruktor).

Beim zweiten Problem musst Du das selbst machen. Es gibt seit Java 5 (oder 6?) die Möglichkeit, formatierte Strings zu verwenden, allerdings habe ich das noch nicht gemacht. Ansonsten schau einfach nach, wie viele Zeichen Dein String hat und füll in einer Schleife bis zur gewünschten Anzahl mit Leerzeichen auf.

[EDIT] noch kurz gegoogelt: http://java.sun.com/j2se/1.5.0/docs/api/java/util/Formatter.html[/EDIT]

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Häh? Was für eine Schleife?

BufferedWriter out = new BufferedWriter(new FileWriter(path)); 
Du willst aus o.g. Zeile folgendes machen:
BufferedWriter out = new BufferedWriter(new FileWriter(path, true)); 

Mit dem boolean Parameter sagst Du dem FileWriter, er soll die Datei nicht überschreiben, sondern Daten anhängen. Exakt so, wie es in der Doku steht.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...