Ständige Abfrage von Werten

1342

Aktives Mitglied
Hallo Leute,

ich bin noch immer an meinem Programm wegen meiner WLAN Kamera.
Es funktioniert alles nur ich möchte noch paar Verbesserungen vornehmen.
Jetzt hab ich ein Problem: Ich möchte Daten in eine Excel Datei schreiben und die dann abfragen, das funktioniert auch alles nur ich möchte das mein Programm das Ständig tut weil jetzt muss ich mein Programm erst schließen und neu öffnen das die neuen Daten übernommen werden.
Ich hab einfach keine Ideen mehr was ich machen kann.
Habt ihr vielleicht eine idee?
Java:
if(Label.equals("OK")) // Wird ausgeführt wenn "OK" betätigt wurde
			{
				try // Versuche
				{	
					// Neuer FileOutputStream um in eine Datei zu speichern
					FileOutputStream schreibeStrom = new FileOutputStream(Datei); 
					
		 
					
					// Zusammensetzen des Strings der gespeichert werden soll
					text = (IPKamera.getText() + ";" + KPasswort.getText()) + ";"  
							+ KBenutzer.getText() + ";" + DateiPfad.getText() + ";";
					
					// Solange wiederholen bis ganzer String geschrieben ist
					for(int j=0; j < text.length(); j++) 
					{ 
						schreibeStrom.write((byte)text.charAt(j)); // Zeichen des Strings wird geschrieben
					}
					schreibeStrom.close(); // Verbindung zur Datei schließen			
				}
				catch(Exception ex) // Bei einem Fehler
				{
					ex.printStackTrace(); // Fehler in Konsole ausgeben
				} 
				dispose(); // Fenster schließen	
				
			}

Java:
public void CSVLesen() // Methode CSVLesen
	{
		try // Versuche
		{
			
			// BufferedReader erstellen der aus der Datendatei ließt welche mit "Datei" übergeben wird
			BufferedReader br = new BufferedReader(new FileReader(Datei));
			
			while (br.ready()){ // Solange ausführen wie Daten im BufferedReader sind
			
				// Einzelne Einträge trennen und dem Array "Daten" hinzufügen
				Daten = br.readLine().split(";");
 

Marco13

Top Contributor
Die einfachste Möglichkeit wäre wohl eine Schleife in einem eigenen Thread, die ständig fragt, ob sich das Änderungsdatum der Datei geändert hat... aber warte mal, ob vielleicht noch jemand einen eleganteren Vorschlag hat... :oops:
 

1342

Aktives Mitglied
Die einfachste Möglichkeit wäre wohl eine Schleife in einem eigenen Thread, die ständig fragt, ob sich das Änderungsdatum der Datei geändert hat... aber warte mal, ob vielleicht noch jemand einen eleganteren Vorschlag hat... :oops:

Das hört sich doch nicht schlecht an :), jetzt muss man nur noch wissen wie das geht ;).
Ich google dann mal...
 

w0ddes

Bekanntes Mitglied
Verständlich. Ich habe auch erst vor einem Jahr mit Java angefangen und als "Anfänger" sind Threads und deren Umsetzung noch echt schwer zu verstehen ;) Versuch einfach mal unabhängig von deinem Programm ein bisschen mit Threads herumzuspielen und bau es dann in dein eigentliches Programm ein ;)
 

1342

Aktives Mitglied
Ich hab das jetzt mal programmiert wie ich es mir so gedacht habe.
Es funktioniert auch aber er erhöht x IMMER um 1, kann das sein das bei dem Datenformat noch die Milliseksunden beachtet werden? Sie werden aber nicht ausgegeben.
Hat jemand einen vorschlag oder idee?


Java:
import java.io.*;
import java.util.Date;
import java.text.DateFormat;

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

		{
		String zeit;
	    long ts;
	    int x=0;
	    File myFile=new File("C:/Users/Melanie/workspace/WLAN/bin/wlankamera/Einstellungen.csv");
	    DateFormat df = DateFormat.getDateTimeInstance();
	    ts=myFile.lastModified();
	    zeit = df.format(new Date(ts)); 
	    System.out.println(zeit);
		
	    
	    while(true){
		String zeitt;
		long tss;
		File myFilee=new File("C:/Users/Melanie/workspace/WLAN/bin/wlankamera/Einstellungen.csv");
		DateFormat dff = DateFormat.getDateTimeInstance();
		tss=myFilee.lastModified();
		zeitt = dff.format(new Date(tss)); 
		System.out.println(zeitt);
	    
	    
	    if(zeit!=zeitt){
	     x=x+1;
	     System.out.println(x);
	    }
	    }}
}


Programm Ausgabe:
Java:
13.09.2010 14:46:47
2364
13.09.2010 14:46:47
2365
13.09.2010 14:46:47
2366
13.09.2010 14:46:47
2367
13.09.2010 14:46:47
2368
13.09.2010 14:46:47
2369
 
G

Gast2

Gast
Java:
zeit!=zeitt
Böse böse böse, Objekte vergleich man mit equals ;)

Java:
if (!zeit.equals(zeitt))
 

Marco13

Top Contributor
Statt des Date-Gewirschtels sollte es aber auch ein
long time = System.currentTimeMillis();
tun.

Oder eben timee, timeee, timeeee oder wie viele Variablen du auch immer brauchst :joke:
 

1342

Aktives Mitglied
Statt des Date-Gewirschtels sollte es aber auch ein
long time = System.currentTimeMillis();
tun.

Oder eben timee, timeee, timeeee oder wie viele Variablen du auch immer brauchst :joke:

kannst du das irgendwie schnell oben in mein COde einbinden damit ich das versteh :-D?!
Ich versteh nicht so ganz was ich wegmachen soll.
 

1342

Aktives Mitglied
Java:
zeit!=zeitt
Böse böse böse, Objekte vergleich man mit equals ;)

Java:
if (!zeit.equals(zeitt))

danke das hat funktioniert nur hab ich meine abfrage jetzt noch nicht 100%, nach 1 änderung erhöht er mir dann die ganze zeit x. muss da mal weiter schauen
 
G

Gast2

Gast
Nachdem du ne Änderung entdeckt hast musst du natürlich
Code:
zeit
auf deine lastModified zeit setzen.
 

1342

Aktives Mitglied
Ja und das versuch ich gerade aber ich bekomm keine schlaue lösung hin, ich bin gerade dran das ich wieder eine neue variable hinzufüge... aber das kann es doch nicht sein :(
Gibts nicht einen leichten/schnellen befehl?
 

1342

Aktives Mitglied
Ich hab es hinbekommen aber ist das eine gute Lösung?
Java:
		if (!zeit.equals(zeitt)){
	     x=x+1;
	     System.out.println(x);
	     zeit=zeitt;

Java:
import java.io.*;
import java.util.Date;
import java.text.DateFormat;

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

		{
		String zeit;
	    long ts;
	    int x=0;
		String zeitt;
		long tss;

		
		{
		
	    File myFile=new File("C:/Users/Melanie/workspace/WLAN/bin/wlankamera/Einstellungen.csv");
	    DateFormat df = DateFormat.getDateTimeInstance();
	    ts=myFile.lastModified();
	    zeit = df.format(new Date(ts));
	    System.out.println(zeit);
		
	    
	    while(true){
	    File myFilee=new File("C:/Users/Melanie/workspace/WLAN/bin/wlankamera/Einstellungen.csv");
		DateFormat dff = DateFormat.getDateTimeInstance();
		tss=myFilee.lastModified();
		zeitt = dff.format(new Date(tss)); 
		//System.out.println(zeitt);
	    
	    
		if (!zeit.equals(zeitt)){
	     x=x+1;
	     System.out.println(x);
	     zeit=zeitt;
	    }
	   }
	 }
}
}
 
G

Gast2

Gast
Das mit dem neusetzen der Zeit ist schon ok.
Aber wesentlich übersichtlicher wirds wenn du dir den Tip von Marco13 zu herzen nimmst. :)
 

Marco13

Top Contributor
Die Zahl die bei file.lastModified() zurückgegeben wird ist die Anzahl der Millisekunden seit 1970.
Die Zahl, die bei System.currentTimeMillis() zurückgegeben wird, ist die Anzahl der Millisekunden seit 1970.

Die kann man prima vergleichen. Der Kern ist dann sowas wie
Java:
                long previousModificationTime = file.lastModified();

                while (true)
                {
                    if (file.lastModified() != previousModificationTime)
                    {
                        // Mach irgendwas mit der Datei...
                        ...
                        previousModificationTime = file.lastModified();
                    }
                    warteEinenMoment();
                }

Oder hier in ein Testprogrämmchen eingebettet:

Java:
import java.io.*;
import java.util.concurrent.*;
import java.util.*;

interface FileModificationListener
{
    void fileModified(File file);
}


class FileObserver
{
    private File file;
    private long interval = 0;

    private List<FileModificationListener> fileModificationListeners =
        new CopyOnWriteArrayList<FileModificationListener>();

    public FileObserver(File file, long interval)
    {
        this.file = file;
        this.interval = interval;
        startThread();
    }

    private void startThread()
    {
        Thread thread = new Thread(new Runnable()
        {
            private long previousModificationTime = -1;
            public void run()
            {
                previousModificationTime = file.lastModified();

                while (true)
                {
                    if (file.lastModified() != previousModificationTime)
                    {
                        notifyFileModificationListeners();
                        previousModificationTime = file.lastModified();
                    }
                    try
                    {
                        Thread.sleep(interval);
                    }
                    catch (InterruptedException e)
                    {
                        Thread.currentThread().interrupt();
                        return;
                    }
                }
            }
        });
        thread.setDaemon(true);
        thread.start();

    }

    public void addFileModificationListener(FileModificationListener fileModificationListener)
    {
        fileModificationListeners.add(fileModificationListener);
    }

    public void removeFileModificationListener(FileModificationListener fileModificationListener)
    {
        fileModificationListeners.remove(fileModificationListener);
    }

    private void notifyFileModificationListeners()
    {
        for (FileModificationListener fileModificationListener : fileModificationListeners)
        {
            fileModificationListener.fileModified(file);
        }
    }
}


class TestFileModificationListener implements FileModificationListener
{
    public void fileModified(File file)
    {
        System.out.println("Modified: "+file);
    }
}

public class FileObserverTest
{
    public static void main (String[] args)
    {
        File file=new File("C:/Test.txt");
        FileObserver fileObserver = new FileObserver(file, 500);
        fileObserver.addFileModificationListener(new TestFileModificationListener());

        // Prevent the daemon thread from dying...
        while (true);
    }
}


FileModificationListener wie gewünscht implementieren und in den FileObserver stecken, dann wird man benachrichtigt.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
1 Erste Schritte ständige Fehler beim Ausführen von Hello World Java Basics - Anfänger-Themen 6
S Array of objects und ständige Constructor-Aufrufe Java Basics - Anfänger-Themen 4
K Ständige Fehlermeldung "Cannot find symbol" Java Basics - Anfänger-Themen 2
P Globale und ständige Überwachung eines Textfeldes auf text? Java Basics - Anfänger-Themen 40
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
L If Abfrage Java Basics - Anfänger-Themen 4
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
P Amazon SQS abfrage Java Basics - Anfänger-Themen 1
Marlena Bauer IBAN generieren (Deutschland) aus Abfrage von BLZ und Kontonummer? Java Basics - Anfänger-Themen 31
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
Y Methoden Wie kann ich eine if-Abfrage bei Setters bauen? Java Basics - Anfänger-Themen 6
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
F POST-Request mit json - Abfrage mit Java Java Basics - Anfänger-Themen 2
C Javafunktion zur Abfrage eines Quellcodes Java Basics - Anfänger-Themen 15
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
G if Abfrage: Nicht jeder Fall berücksichtigt Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
S Backspace Abfrage funktioniert nicht Java Basics - Anfänger-Themen 4
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D SQL Abfrage anpassen Java Basics - Anfänger-Themen 17
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
O Datentypen Volle 16 Bit eines Short für flags Abfrage nutzen Java Basics - Anfänger-Themen 11
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
M Variablen Eine etwas andere if Abfrage ! Java Basics - Anfänger-Themen 10
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
OlafHD Fehler Bei der if Abfrage Java Basics - Anfänger-Themen 5
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
D if-Abfrage Java Basics - Anfänger-Themen 12
J Abfrage für Programmwiederholung Java Basics - Anfänger-Themen 2
K Alternative zur If-Abfrage Java Basics - Anfänger-Themen 3
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
D Abfrage ob Variableninhalt korrekt Java Basics - Anfänger-Themen 5
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
X Ja nein abfrage? Java Basics - Anfänger-Themen 9
A Erste Schritte Problem bei meiner if-Abfrage! Java Basics - Anfänger-Themen 5
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
T Klasse für Google-Abfrage Java Basics - Anfänger-Themen 9
Z If abfrage - Minimum 0 Java Basics - Anfänger-Themen 9
J Abfrage versetzen Java Basics - Anfänger-Themen 2
D Methoden Abfrage ob ein Wert bereits vorhanden ist Java Basics - Anfänger-Themen 1
thet1983 if() Abfrage Java Basics - Anfänger-Themen 2
A charAt(x)-Abfrage lässt bei Strings<x das Pgrogramm abstürzen. Kann man das verhindern? Java Basics - Anfänger-Themen 4
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Index-Abfrage von Pi Java Basics - Anfänger-Themen 5
H Erste Schritte If Abfrage Java Basics - Anfänger-Themen 3
B If Abfrage mit Passwort und Username Java Basics - Anfänger-Themen 2
U einlesen, abfrage Java Basics - Anfänger-Themen 25
T SQL Abfrage Läuft nicht Java Basics - Anfänger-Themen 5
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
F Erste Schritte IF-Abfrage fehlerhaft Java Basics - Anfänger-Themen 9
O Downloaden: Trotz If Abfrage wird Datei heruntergeladen Java Basics - Anfänger-Themen 2
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
H if-Abfrage double wert Java Basics - Anfänger-Themen 5
M Erstes Prog. OS Abfrage Java Basics - Anfänger-Themen 9
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
B Boolean abfrage Java Basics - Anfänger-Themen 3
D Variablen Rücksprung nach If Abfrage Java Basics - Anfänger-Themen 16
T If- Abfrage Java Basics - Anfänger-Themen 8
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
D if-Abfrage Java Basics - Anfänger-Themen 6
G Einfache if-Abfrage der Main-Argumente Java Basics - Anfänger-Themen 3
C If abfrage zu getBackground Java Basics - Anfänger-Themen 2
T abfrage eines Integer Array s Java Basics - Anfänger-Themen 5
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
G Adminrechte abfrage Java Basics - Anfänger-Themen 5
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
R If-Abfrage, || funktioniert nicht Java Basics - Anfänger-Themen 4
S TabbedPane: nach Abfrage oldTab selektieren Java Basics - Anfänger-Themen 5
B Abfrage mittels Variable vereinfachen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben