login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[Java]Ik krijg altijd false terug... (Opgelost)

Offline valles10 - 13/03/2011 20:54
Avatar van valles10HTML interesse Ik wil dat mijn programmatje om de x-aantal seconden een bestand gaat checken. Als de waarde in dat bestand veranderd is moet die iets uitvoeren (in dit geval een println). Het probleem is dat het script ALTIJD die println uitvoert, ook als de waarde nog steeds hetzelfde is. Als ik de waarde dan verander, krijg ik zelfde resultaat...

  1. import java.io.*;
  2.  
  3. class fileChecker {
  4. public static boolean running = true;
  5. public static String lastObj;
  6.  
  7. public static void main(String args[]) {
  8. process();
  9. }
  10.  
  11. public static void process() {
  12. if (running) {
  13. if(lastObj == null){
  14. lastObj = getFileData();
  15. System.out.println("System first value set."+lastObj);
  16. }
  17. if(lastObj != getFileData()){
  18. System.out.println("value seems to be changed...");
  19. lastObj = getFileData();
  20. System.out.println("New value has been set."+lastObj);
  21. }else{
  22. System.out.println("old value still equal to new value");
  23. }
  24. System.out.println(getFileData() == lastObj);
  25. try {
  26. Thread.sleep(5000);
  27. } catch (InterruptedException e) { }
  28. process();
  29. }
  30. }
  31.  
  32. public static String getFileData() {
  33. try {
  34. FileInputStream fstream = new FileInputStream("info.txt");
  35. DataInputStream in = new DataInputStream(fstream);
  36. return br.readLine().toString();
  37. } catch (Exception e) {
  38. return "Error occured";
  39. }
  40. }
  41. }

Iemand enig idee wat er fout gaat?

2 antwoorden

Gesponsorde links
Offline Wim - 13/03/2011 21:03
Avatar van Wim Crew algemeen zou wel leuk zijn als je even zegt WAT er exact altijd false weergeeft.

op het eerste zicht zou ik zeggen dat je strings aan het vergelijken bent zoals je met getallen doet ipv met equals() (lees http://leepoint...jects.html)
Bedankt door: valles10
Offline valles10 - 13/03/2011 21:06
Avatar van valles10 HTML interesse
Wim schreef:
zou wel leuk zijn als je even zegt WAT er exact altijd false weergeeft.

op het eerste zicht zou ik zeggen dat je strings aan het vergelijken bent zoals je met getallen doet ipv met equals() (lees http://leepoint...jects.html)

idd!
  1. if(!getFileData().equals(lastObj)){
  2. System.out.println("value seems to be changed...");
  3. lastObj = getFileData();
  4. System.out.println("New value has been set."+lastObj);
  5. }else{
  6. System.out.println("old value still equal to new value");
  7. }

Heb ik over het hoofd gezien, thanks!
Gesponsorde links
Je moet ingelogd zijn om een reactie te kunnen posten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.21s