Bitte um Hilfe - zyklisch Existenz einer Datei prüfen

Status
Nicht offen für weitere Antworten.
N

niri2506

Gast
Hallo leute,

ich "programmier" jetzt seit 2 monaten mit java....
in der schule im info untericht...

so...
da ich "für 2 monate programmieren" ziemlich gut bin..... wollte ich mal was komplett eigenes versuchen zu schreiben...

auf die idee hat mich ein kumpel von mir gebracht....
ich soll für ihn "versuchen" ein mini-app zu schreiben, das die ganze zeit nur eine methode (boolean)
ausführt...
es soll überprüfen ob sich in einem bestimmten ordner auf dem pc eine datei befindet...
da mein kumpel anscheinend zu faul ist eine verknüpfung zum ordner hin zu machen :D:D:D

hab ich ihm aber nich gesagt sondern dachte mir wäre mal ne ganz gute übung....

es soll dann.... (denke ich mal) so aussehen... also die methode...

Code:
public boolean ordner()
{
   if(???dateienimordner???) 
       {
         return true;  
        }
        else 
        {
            return false;
        }
}

kam mir ja eigentlich ganz einfach vor...
aber....
1. wie krieg ich den dazu zu überprüfen ob in dem ordner was ist?
2. ich muss denke ich ja mal noch irgendwo das System.out.println(); einbringen oder?
3. wie krieg ich das prog überhaupt richtig zum laufen...?
4. muss ich überhaupt ne boolean methode schreiben?
5. kann es sein dass das programm eigentlich viel mehr noch haben müsste?

wäre super nett wenn ihr mir helfen könntet
 
M

maki

Gast
Dir sei java.io.File#exists() empfohlen, des Thema mit "die ganze Zeit" braucht etwas mehr als man dir am Anfang zumuten sollte, reicht erstmal wenn die Methode einmal boolean zuückliefert.
 

hdi

Top Contributor
Ja also es ist jetz nich wirklich schwer, das zu überprüfen, aber du stellst dir das schon ein wenig... komisch vor ;)

System.out-Meldungen laufen auf der Konsole deiner IDE. Dein Freund will ja wohl das Programmnicht immer mit Eclipse/Netbeans starten müssen und dauernd das Fenster öffnen um zu kucken ob da eine Meldung ist.
D.h. du brauchst statt so ner Meldung ein Fenster o.ä. das kommt wenn eine Datei drin ist.

Für dein Vorhaben an sich kuck mal die Klasse "File" von Java an (Google)

Zum Laufen kriegste dein Programm indem du es als jar-Datei exportierst. Das kann dein Freund dann
per Doppelklick starten und das läuft dann auch. Aber du solltest schon ne Möglichkeit einbauen, das Programm
irgendwie zu beenden, entweder es beendet sich selbst sobald eine Datei im Ornder ist (nachdem es das halt
angezeigt hat), oder.. du brauchst wohl ein Fenster, dass die ganze Zeit irgendwo offen ist und das man schliessen kann.

Boolean-Methode wär durchaus sinnvoll ja

Wichtig noch: Dein Programm muss ja irgendwie in einer Endlos-Schleife laufen, weil es ja die ganze
Zeit checken soll, ob der Ordner ne Datei bekommen hat. Vergiss dabei bitte nicht ein

Code:
while(true){
    doStuff...
    Thread.sleep(500); // heisst: nach jeder Überprüfung 500ms schlafen
}

...sonst ist dein Programm ein absoluter CPU-Fresser und stört evtl das normale Arbeiten am PC
 
N

niri2506

Gast
lastet so ne (denkmal relativ kleine java app) den cpu dermaßen aus?....
naja also is en quad cor mit 2,4 oder so.... sollte also nix bei passieren :D
 

hdi

Top Contributor
Der Last an sich ist bei einer kleinen App quasi nicht vorhanden, aber wenn du dein Programm ohne Pause in einer
Schleife ohne sleep() arbeiten lässt (auch wenn es nix macht!), dann heisst das für den Scheduler des Betriebssystems, dass dieses Programm Aufmerksamkeit will. Windows weiss ja nicht, wie komplex das Programm ist, oder es überhaupt etwas tut. Fakt ist, es weist dem Programm den Prozessor zu, womit der Prozessor für alle anderen Programme nicht verfügbar ist, und dann fängt alles an zu ruckeln etc.

Und auch wenn er nen Quadcore hat: Die meisten Programme sind noch immer nicht für Mehrkern Prozessoren optimiert und nutzen das gar nicht.

Also nochmal ganz, ganz deutlich: du MUSST sleep einbauen!! Es reicht ein kleinerer Wert als 500ms, zB 20 oder 10,
aber es kann dir ja egal sein, ob dein Freund die Nachricht bekommt, 10ms nachdem die Datei da ist, oder ne halbe
Sekunde später..

Deshalb solltest du netterweise den Prozessor freigeben für andere Dinge, die dein Freundmachen will!
 

HoaX

Top Contributor
auslastung hat dohc nix mit der größe zu tun.
lauf du doch mal ohne pausen >20.000 mal pro sekunde in das nebenzimmer und schau ob deine mutter dort ist. egal wie groß du bist, auf dem flur dazwischen wird die hölle los sein ...

hdi hat gesagt.:
du MUSST sleep einbauen!
naja, ein wait(int) würde in etwas das selbe ergebnis bringen ;)
 

hdi

Top Contributor
nettes beispiel hoax, aber richtigerweise muss es heissen:

...egal wie weit entfernt das Nebenzimmer ist, es wird die Hölle los sein ;)
 
N

niri2506

Gast
okay..... da habt ihr recht... an sowas hab ich gar nich gedacht....
also ich hab jetzt mal bei google gesucht und gesucht.....
rausgekommen ist dies.....
ist zwar warscheinlich der totale müll aber....
Code:
import java.io.file;

class File
{
  public boolean exists()
  {
    System.out.println("ja da ist etwas da");
  }
}
[\code]
 

hdi

Top Contributor
naja was heisst totaler Müll, eher total sinnlos ;)

Ich schon ok als Rahmen, aber in die exists() Methode kommt halt jetzt die Überprüfung,
und in die main-Methode kommt dann eine Schleife, die immer wieder diese Methode aufruft,
wenn sie "true" liefert den User benachrichtigt, ansonsten halt nicht, und danach n
Weilchchen schläft, dann wieder die Schleife durchgeht, usw

edit: Ich seh grad das is doch der totale Müll :p Du sollst nicht die File-Klasse überschreiben!
Du erstellst dir ein File-Objekt auf dem du arbeitest:

Code:
class MeinProgramm{

     // hier die main-methode

     private boolean exists(){
            
            File file = new File("C:/Ordner");
            usw..
     }
}
 
N

niri2506

Gast
okay....
also soweit alles klar glaube ich.... aber der sagt mir bei dem was du mir da geschrieben hast
MeinProgramm.java:10:5: illegal start of expression
private boolean exists()
^
MeinProgramm.java:10:26: ';' expected
private boolean exists()
^
2 errors
 

hdi

Top Contributor
Dann haste das jetzt irgendwo eingefügt...

Der komplette Code-Block den ich gepostet hab, das is ne eigene Klasse. Das kommt in eine
neue Datei mit Namen "MeinProgramm", und da steht nur das, genauso, drinnen.

Das musste ja nicht übernehmen, ich wollte dir damit nur zeigen wie wir das mit dem File
gemeint hatten. Du sollst halt deine Klasse nicht "File" nennen, sondern du brauchst für dein
Vorhaben ein File-Objekt.
 
N

niri2506

Gast
Code:
class MeinProgramm{

public static void main(String[] args)
{
while(true){
    exists();
    Thread.sleep(500);
}

    private boolean exists()
    {

         File file = new File("C:/Ordner");
         
         if (true)
         {
           return true;
         }
         else
         {
           return false;
         }
     }
}
}
 

hdi

Top Contributor
du musst die exists() methode aus der main rausziehen... das is ne eigene Methode
 

Wildcard

Top Contributor
Und für die Zukunft:
Polling sollte vermieden werden wo immer möglich. Stattdessen verwendet man push Konzepte. Für Dateisysteme im push Verfahren auf Änderungen zu überprüfen bietet sich JNotify an.
 
N

niri2506

Gast
du meinst so:?!
Code:
class MeinProgramm{

public static void main(String[] args)
{
while(true){
    exists();
    Thread.sleep(500);
}
}
private boolean exists()
    {

         File file = new File("C:/Ordner");
         
         if (true)
         {
           return true;
         }
         else
         {
           return false;
         }
     }
}
[/code]
 

hdi

Top Contributor
also.. ich will dir jetz nich zu Nahe rücken, aber vllt kannst du doch weniger, als du denkst ;)
Es scheint, es fehlen dir n paar Basics über das Programmieren mit Java.

Erstmal solltest du ja wohl wissen nach 2 Monaten, wie man eine Klasse aufbaut und wo man
da Methoden reinschreibt. Ja, das ist richtig so, aber komisch dass du dir da unsicher bist..

Und wegen dem File: Vllt versteh ich dich nur falsch, aber dir ist schon klar dass dein Programm
bisher noch immer nichts macht?

Schau dir die Klasse File in der API an, damit du siehst, wie du ein File öffnen kannst, und was es
für Methoden gibt um zu überprüfen ob in einem Ordner eine Datei ist.

Hier die API:

http://java.sun.com/javase/6/docs/api/

Links haste die Liste aller Klassen in Java, File ist eine davon. (Bookmark dir die API, is sehr wichtig!)

Und dann versuch mal dein Programm zu schreiben, wenn du an einer spezifischen Stelle nicht weiter
kommst, wird dir hier gerne weitergeholfen
 
N

niri2506

Gast
das ich wenig über klassen weiß da hast du recht....
wir haben uns bisher im uterricht nur mit methoden beschäftigt.... also wie man anständige schreibt....
deswegen wollt ichs auch mal selber versuchen mal was anständiges zu lernen
 

Andreas29

Bekanntes Mitglied
Hi,

du kannst in Java keine Methoden ohne Klassen schreiben. Das geht simple und einfach nicht. Und das ist auch gut so...

Achso, ein Tipp noch:
Gewöhne dir an, deinen Code sauber zu formatieren und sprechende Klassennamen zu verwenden (MeinProgramm ist nicht wirklich sprechend), überlege dir, was die Klasse tun soll (bzw genauer gesagt, Instanzen der Klasse) und leite daraus den Namen ab. Dann hast du langfristig deutlich mehr übersicht in deinem Code und das ist sehr wichtig.
Und noch ein Tipp:
Programmiert wird üblicherweise in Englisch. Sprich, sämtliche Namen (von Klassen, Methoden, Variablen und so weiter) sollten gerne englisch sein, da dies die Weltsprache ist (und wohl auch bleiben wird...).

Grüße,
Andy
 

hdi

Top Contributor
Ist ja auch ne gute Idee, sollte auch kein Vorwurf sein ;)

Ich seh grad ich hab selber n Fehler gemacht.. Vllt findest du ihn selber? Du hast ja gesagt ihr
habt was über Methoden gelernt... auch, was das Schlüsselwort "static" bedeutet?
 
M

maki

Gast
Nicht entmutigen lassen niri2506, aller Anfang ist schwer, für jemanden der erst seit 2 Monaten Java nur im Info Unterricht in der Schule macht (2 Std. pro Woche?) stellst du dich schon gut an :)

Lass aber den Thread bzw. das sleep am Anfang weg, schau nur dass du eine Methode hast die dir true zurückliefert wenn das File existiert, der Rest kommt dann später.

Teile und herrsche ;)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
M Bitte um Hilfe bei 2DArrays Java Basics - Anfänger-Themen 8
D Abrechnung bitte um hilfe Java Basics - Anfänger-Themen 25
J Doppelt verkette Liste ich bitte um Hilfe Java Basics - Anfänger-Themen 4
J Java List, Bitte um Hilfe Java Basics - Anfänger-Themen 15
J Java List, bitte um Hilfe Java Basics - Anfänger-Themen 3
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
marcooooo einmal noch schnell hilfe bitte:/ Java Basics - Anfänger-Themen 2
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
ZH1896ZH OOP Verstehe nicht was der Hinweis bedeutet, bitte um Hilfe! Java Basics - Anfänger-Themen 2
B BITTE!! Ich brauche dringende Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 17
S Bitte Hilfe zu Fehlermeldung am Handy Java Basics - Anfänger-Themen 2
I Do-While / Kalkulator / Bitte um Hilfe Java Basics - Anfänger-Themen 9
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
C Stack und Queue in Aktion (Bitte Hilfe für die Klausur) Java Basics - Anfänger-Themen 7
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
T Bitte um Hilfe Java Basics - Anfänger-Themen 9
D Arraylisten sortieren bitte um Hilfe Java Basics - Anfänger-Themen 4
J Bitte Hilfe Java Basics - Anfänger-Themen 4
T Bitte um Hilfe bei Aufgabe: Long zahl = Long.parseLong(args [0]); Java Basics - Anfänger-Themen 3
D Bitte um Hilfe bei "error: package com.apple.eawt does not exist import com.apple.eawt.*;" Java Basics - Anfänger-Themen 1
P <identifier> expected Fehler bitte um Hilfe Java Basics - Anfänger-Themen 5
K NullPointerException wird geworfen, bitte um Hilfe! Java Basics - Anfänger-Themen 7
S Variablen Hilfe bitte Java Basics - Anfänger-Themen 6
J Ich bitte DRINGEND um Hilfe!!! Java Basics - Anfänger-Themen 16
Q Importieren meiner Boundary? Bitte Hilfe Java Basics - Anfänger-Themen 3
CyberFish initialisieren, obwohl es gemacht wurde! Bitte um Hilfe Java Basics - Anfänger-Themen 10
H Bitte um Hilfe von Profis. Java Basics - Anfänger-Themen 5
S Klassen Formel zur Berechnung .... Bitte um Hilfe Java Basics - Anfänger-Themen 7
J Probleme bei kompilieren ... Bitte um Hilfe Java Basics - Anfänger-Themen 27
P Bitte um hilfe bei einfachem Rechner Java Basics - Anfänger-Themen 7
B Bitte Hilfe für Funktionalität eines Sudokus Java Basics - Anfänger-Themen 8
G Brauche bitte Hilfe, bei umgekehrter Ausgabe!! Java Basics - Anfänger-Themen 6
U finde fehler nicht! bitte um hilfe Java Basics - Anfänger-Themen 8
M Problem: code too large - bitte um Hilfe Java Basics - Anfänger-Themen 12
B Java und Javac funktionieren nicht - bitte hilfe Java Basics - Anfänger-Themen 5
3 Bitte um Hilfe bei Lösung einer Aufgabe Java Basics - Anfänger-Themen 16
R Jave Problem... bitte um Hilfe!! Java Basics - Anfänger-Themen 6
S Java problem, bitte um hilfe! Java Basics - Anfänger-Themen 9
B Bitte um Hilfe es geht um Array + Punkte wie Dreieck,Fläche etc. Java Basics - Anfänger-Themen 12
N verständniss problem bitte um hilfe Java Basics - Anfänger-Themen 3
L Brauche bitte dringend Hilfe für Klausur Java Basics - Anfänger-Themen 8
B Monat und Jahr bitte um Hilfe Java Basics - Anfänger-Themen 8
D Java Problem bitte um hilfe Java Basics - Anfänger-Themen 4
S BITTE UM HILFE: Unterschied Deklaration und Signatur einer Methode Java Basics - Anfänger-Themen 3
S BITTE UM HILFE HASHTABLE/import java.util.Hashtable in Ecplipse Java Basics - Anfänger-Themen 12
T Problem mit Aufgabe..bitte um Hilfe Java Basics - Anfänger-Themen 8
S Bitte um Hilfe beim unsortierten Binärbaum!! Java Basics - Anfänger-Themen 6
G ein kleines java prog - hat aber einen fehler-bitte um hilfe Java Basics - Anfänger-Themen 5
G Verstehe das nicht. bitte um hilfe Java Basics - Anfänger-Themen 13
L Bitte um Hilfe: getRuntime().exec() Java Basics - Anfänger-Themen 12
H BITTE SCHNELLE HILFE - VERZEICHNISSE DURCHGEHEN Java Basics - Anfänger-Themen 2
K Hilfe beim starten eines Programms! Bitte helfen. Java Basics - Anfänger-Themen 8
P JTable Problem ! Bitte um Hilfe ! Java Basics - Anfänger-Themen 8
G hilfe bitte gebt mir wenigstens grundwissen! :( Java Basics - Anfänger-Themen 4
E Bitte Hilfe Taschenrechner! Java Basics - Anfänger-Themen 13
P Habe da ein Problem mit Arrays! Bitte um Hilfe Java Basics - Anfänger-Themen 2
S Ausgabe funktioniert nicht! Bitte um Hilfe! Java Basics - Anfänger-Themen 16
S Buffer - charArray bitte um Hilfe! Java Basics - Anfänger-Themen 4
D Java Aufgabe fürs Studium (bitte um Hilfe) Java Basics - Anfänger-Themen 8
C Compiler-Fehler - bitte um Hilfe Java Basics - Anfänger-Themen 20
C Bitte Hilfe bei Übung zu Verzweigungen Java Basics - Anfänger-Themen 16
E Bitte um Hilfe! Zugriff auf "veränderte" Variablen Java Basics - Anfänger-Themen 2
ineedhelpinjava OOP Bitte wichtig Java Basics - Anfänger-Themen 6
G Bitte meinen Account löschen Java Basics - Anfänger-Themen 1
Vivien Bitte um Optimierungsvorschläge / Verbesserungsvorschläge / allgemeines Feedback Java Basics - Anfänger-Themen 8
F Methoden Bitte Helft mir meinen Fehler zu finden. Möchte in diesem Bankenprogramm durch die Konsoleneingabe auswählen welches Konto reduziert und welches erhö Java Basics - Anfänger-Themen 17
P Bitte Hinweise zu folgendem "Klassenproblem" Java Basics - Anfänger-Themen 3
A Erste Schritte Bitte helfen sie mir diese Programm zu schreiben Java Basics - Anfänger-Themen 12
B MVC Struktur mit mehreren Szenen - wer schaut mal bitte drüber? Java Basics - Anfänger-Themen 2
P Erste Schritte Bitte ein paar Erklärungen zu meinem Code Java Basics - Anfänger-Themen 6
W FileReader - Bitte um Erklärung Java Basics - Anfänger-Themen 7
V Memory Logik Problem/Denkblockade, bitte helft Java Basics - Anfänger-Themen 1
J Bitte um Erklärung Java Basics - Anfänger-Themen 4
A GUI- Allgemeines Problem (Bitte helfen) Java Basics - Anfänger-Themen 15
C Polymorphie - Erklärung bitte Java Basics - Anfänger-Themen 5
M Quadrat zeichnen einfach bitte! Java Basics - Anfänger-Themen 2
F Bitte mal Zusammenhänge der Klassen erklären Java Basics - Anfänger-Themen 8
J Kann mir bitte mal jemand diese Codes erklären? Java Basics - Anfänger-Themen 19
J Threading-Aufgabe. Totale Noob Fragen, aber bitte trotzdem beantworten ;) Java Basics - Anfänger-Themen 7
O Rundungsfehler bitte erklären! Java Basics - Anfänger-Themen 4
M Erklärung Code Mergesort Bitte Java Basics - Anfänger-Themen 3
N While Schleife Erklärung Bitte Java Basics - Anfänger-Themen 3
Z Erste Schritte Bitte helft mir dringend!! Java Basics - Anfänger-Themen 3
T Unit tests fehlerhaft bitte um hiiiiilfe :D Java Basics - Anfänger-Themen 1
T Eine kurze frage vor der prüfung bitte. Java Basics - Anfänger-Themen 5
H Methoden Bitte um Erklärung der askString-Methode Java Basics - Anfänger-Themen 15
O Erste Schritte Aller Anfang ist schwer ! Bitte um Unterstützung Java Basics - Anfänger-Themen 6
G Bitte um Erklärung dieser einer Zeile Java Basics - Anfänger-Themen 5
G Input/Output FilenameFilter aber bitte keine Unterordner Java Basics - Anfänger-Themen 5
J Vererbung Anfänger Programm bitte um Kritik&Anregungen Java Basics - Anfänger-Themen 21
N Bitte Java Basics - Anfänger-Themen 2
D ???:L Bitte einmal mit drüber nachdenken Java Basics - Anfänger-Themen 5
eLogic DownloadManager - Bitte helft mir Java Basics - Anfänger-Themen 7
R Vererbung Bitte um Erklärung - Instanzvariablen Java Basics - Anfänger-Themen 8
U Bitte Helfen kleines Spiel Java Basics - Anfänger-Themen 9
P Bitte helft mir Java Basics - Anfänger-Themen 3
M Aus CSV-Datei lesen und anzeigen (bitte schnell um Antwort) Java Basics - Anfänger-Themen 6
C Bitte kurzes Feedback - JavaVersionen Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben