Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

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

Empfohlene Antworten

Veröffentlicht

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]

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

ja ok aber irgendwie geht das ja auch nicht, wenn ich den Filwriter außerhalb der Schleife schreibe...

???:L

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

oh ja genau das hatte gefehlt.. :bimei

na gut thx. . . :upps

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.