Prüfen, ob jpg image schon vorhanden ist, bevor es geladen wird

  • Themenstarter hüteüberhüte
  • Beginndatum
H

hüteüberhüte

Gast
Hallo, ich möchte prüfen, ob ein Image schon auf der Platte vorhanden ist. Wie mache ich das am Besten? Dateiname, Länge oder Hash überprüfen?
 

Camill

Bekanntes Mitglied
Reicht [japi]File#exists()[/japi] denn nicht aus? Oder habe ich die Frage falsch verstanden?
 
Zuletzt bearbeitet:
H

hüteüberhüte

Gast
Das Image stammt von einem Webserver und es kann sich ändern, das ist das Problem...
 
H

hüteüberhüte

Gast
Gut wärs, wenn sich vor dem Laden entscheiden ließe, ob ein aktuelleres Image geladen werden muss

[OT]Keinen OT philosophie Thread starten, bitte[/OT]
 
S

Spacerat

Gast
Ich weiss ja nicht, wie du die Datei speicherst, aber per FileIO sollte sich eine Prüfsumme beliebiger Bitbreite wie folgt erstellen lassen.
Java:
FileOutputStream fOut = new FileOutputStream((File) f, false);
InputStream in = url.openStream();
int r;
long sum = 0;
while((r = in.read()) != -1) {
	fOut.write(r);
	sum += r;
}
in.close();
fOut.close();
Vor dem Laden kannst du evtl. serverseitig per Http-Responsecode (401, 500 usw.) steuern. Da gibt es einen, ich meine das war 200, der den Clienten anweist (besser gesagt vorschlägt) die Datei aus dem Cache zu verwenden.
 
Zuletzt bearbeitet von einem Moderator:

Camill

Bekanntes Mitglied
Habe mal eben ein wenig gegoogelt da ich mich mit Images selber kaum auskenne, vielleicht hilft dir folgende Seite weiter (es werden zwei Methoden zum vergleichen vorgestellt): Klick
 
D

dhalsim

Gast
Gut wärs, wenn sich vor dem Laden entscheiden ließe, ob ein aktuelleres Image geladen werden muss
Dann schicke dem Server einen HEAD-Request und überlege dir, wie du basierend auf diesen Infos weiter verfährst, soll heißen GET hinterher oder von Platte holen.
Wenn du nicht weißt, was das für infos sind, dann schau mal hier rein: Wikipedia

[OT][OT]Keinen OT philosophie Thread starten, bitte[/OT]
Philosophie? Nein. Eher eine Analogie was den Informationsfluss angeht. Aber zumindest kann man mittlerweile erraten, dass du hier so eine Art Browsercache nachbauen willst.
[/OT]
 
Zuletzt bearbeitet von einem Moderator:
H

hüteüberhüte

Gast
Ja, so etwas ähnliches wie ein Br. Cache.

Lässt sich mit new URL(urlStr) etwas anfangen, oder muss ich absolut low-level ansetzen?

Grüße!

Gesendet mit Tapatalk 2
 
D

dhalsim

Gast
Du musst einen HTTP-Request absetzen und die Response auswerten z.B. mittels einer [JAPI]HttpURLConnection[/JAPI], welche du (Danke an Spacerat für den Hinweis) mit [JAPI]URL#openConnection()[/JAPI] erhältst.

Oder du nimmst 3rd-Party-Libs wie die Apache HttpComponents

Und weiter runter als HTTP musst du eigentlich nicht. Also keine Angst, zu "absolut low-level" wirst du nicht verdonnert :)
 
Zuletzt bearbeitet von einem Moderator:
S

Spacerat

Gast
Also mit URLs lässt sich schon gewaltig etwas anfangen. Nur solltest du nicht die Abkürzung "url.openStream()", sondern "url.openConnection()" verwenden, über welche du dann neben dem Stream noch andere Attribute bekommst. Für das Web dürfte dich dabei HTTPURLConnection interessieren.
 
T

troll

Gast
@TO
du müsstest eine server-sprache einsetzen die dir auf die selbe weise einen hash berechnet wie die methode mit der du den hash des files bekommst ...

am einfachsten wäre hier wohl MD5 ... besser allerdings natürlich SHA-2 familie ...

du berechnest einfach den hash des files und fragst beim server nach dem aktuellen ...
sind beide identisch > platten cache ...
wenn unterschiedlich > neu vom server laden ...
 

Bernd Hohmann

Top Contributor
Dein Freund hierzu heisst ".getLastModified()" der HttpURLConnection sowie .getLastModified/.setLastModified von java.io.File

Vorgehensweise:

1) .getLastModified() des Bilds vom Server holen

2) Wenn Bild nicht auf Platte vorhanden, herunterladen und via File#setLastModified(long) das Dateidatum auf das Datum vom Server setzen

3) Wenn Bild vorhanden, dann prüfen ob das Bild auf der Platte (File#getLastModified()) ein anderes Datum zu HttpURLConnection#getLastModified()) hat. Wenn ja, Bild neu runterladen und Dateidatum setzen.

Alternativ kann man mal mit ifModifiedSince von HttpURLConnection herumspielen wenn man einfach ein GET absetzen will.

Bernd
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
J Schlüsselworte Prüfen, ob ein bestimmtes, ganzes Wort in einem String enthalten ist. Java Basics - Anfänger-Themen 6
Ostkreuz Int Scanner auf Enter Eingabe prüfen Java Basics - Anfänger-Themen 4
S Prüfen ob ein zweidimensionales Array rechteckig ist Java Basics - Anfänger-Themen 4
M Prüfen on eine Zahl im String enthalten ist Java Basics - Anfänger-Themen 3
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
Fiedelbambu Prüfen von Komma stelle beim Taschenrechner Java Basics - Anfänger-Themen 5
sserio Prüfen, ob eine Zahl eine periodische Zahl ist Java Basics - Anfänger-Themen 20
I Auf vollen Monat prüfen? Java Basics - Anfänger-Themen 22
A Dateiname auf Vorkommen prüfen Java Basics - Anfänger-Themen 29
I Prüfen, ob Anzahl an Monate ein Jahr ergeben Java Basics - Anfänger-Themen 4
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
W Klasse existiert prüfen Java Basics - Anfänger-Themen 5
Q Prüfen ob Zahl als Summe von Potenzen dargestellt werden kann. Java Basics - Anfänger-Themen 20
U Kann man bei Java gleich mehrere Bedingungen prüfen in der If, aber in einem "Satz"? Java Basics - Anfänger-Themen 1
O Ich ahbe einen char und diesen soll ich bei .matches prüfen, also ob der char in meiner Zeichenkette vorhanden ist, wie mache ich das? Java Basics - Anfänger-Themen 9
B Array nach Wert prüfen rekursiv Java Basics - Anfänger-Themen 5
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
M Array auf Primzahlen prüfen Java Basics - Anfänger-Themen 7
K Wie String prüfen ob drei mal das gleiche Zeichen vorkommt? Java Basics - Anfänger-Themen 7
J ArrayList auf bereits vorhanden eintrag prüfen Java Basics - Anfänger-Themen 5
X Zwei Dimensionales Array prüfen Java Basics - Anfänger-Themen 1
B Prüfen, ob Zeit Überschreitung Java Basics - Anfänger-Themen 2
B Sudoku prüfen Java Basics - Anfänger-Themen 13
M Prüfen auf null ohne NPE Java Basics - Anfänger-Themen 1
X Array auf Leerstellen prüfen Java Basics - Anfänger-Themen 1
FelixN Prüfen, ob ein 2D-Array rechteckig ist Java Basics - Anfänger-Themen 42
C Erste Schritte JComboBox Einträge auf Duplikat prüfen Java Basics - Anfänger-Themen 4
M prüfen ob alle array werte gleich sind Java Basics - Anfänger-Themen 27
C Array auf Null-Inhalte prüfen Java Basics - Anfänger-Themen 9
B Prüfen, ob Country Code in Europa ist? Java Basics - Anfänger-Themen 24
L Prüfen ob Fax (Tif-Datei) vollständig angekommen ist Java Basics - Anfänger-Themen 15
O Datenstruktur auf SET prüfen in O(n) Java Basics - Anfänger-Themen 32
O Einzelne Bits umwandeln und prüfen Java Basics - Anfänger-Themen 23
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
B Prüfen, ob Datum2 der gleiche Tag ist wie Datum1 Java Basics - Anfänger-Themen 10
Dimax Erste Schritte String Eingabe Prüfen Java Basics - Anfänger-Themen 11
S char auf buchstabe/zeichen prüfen Java Basics - Anfänger-Themen 1
S Array doppelter Wert prüfen Java Basics - Anfänger-Themen 7
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
K Linux Speicherplatz mit Java prüfen Java Basics - Anfänger-Themen 4
O Array nach gleichen Zahlen prüfen und ausgeben Java Basics - Anfänger-Themen 6
G Compiler-Fehler Auf Anagramm prüfen Java Basics - Anfänger-Themen 1
B Excel File einlesen und Überschrift prüfen Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert Input/Output Prüfen wie oft etwas eingegeben wurde Java Basics - Anfänger-Themen 2
K Operatoren 2D Int Array auf Null-Referenzen prüfen Java Basics - Anfänger-Themen 18
S Prüfen ob Zelle in Excel leer ist funktioniert nicht (Apache POI) Java Basics - Anfänger-Themen 18
C Klassen Reguläre Ausdrücke auf Gleichheit prüfen Java Basics - Anfänger-Themen 5
M Erste Schritte Java prüfen ob eine der Möglichkeiten erfüllt ist Java Basics - Anfänger-Themen 2
R Auf Nachkommastellen prüfen. Java Basics - Anfänger-Themen 2
P Argumente auf plausibilität prüfen... Java Basics - Anfänger-Themen 8
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
B Passwort prüfen bis eindeutig - while Schleife? Java Basics - Anfänger-Themen 11
Tommy Nightmare Variable auf mehrere Ungleichheiten prüfen Java Basics - Anfänger-Themen 18
B String mit Emailadresse prüfen Java Basics - Anfänger-Themen 11
E 2D Arrays auf Ungleichheit prüfen! Java Basics - Anfänger-Themen 5
MrSnake Prüfen ob TitledPane schon besteht Java Basics - Anfänger-Themen 2
B Serial Key prüfen -> String mit privatem Key und dann abgleichen; Summe = 0 Java Basics - Anfänger-Themen 8
N Compiler-Fehler Iban prüfen Java Basics - Anfänger-Themen 7
J Prüfen ob Arrays nur mit einem Wert belegt sind Java Basics - Anfänger-Themen 3
M String prüfen Java Basics - Anfänger-Themen 7
E Prüfen ob Sammlung gesetzt wurde - Lebensmittelsammlung Java Basics - Anfänger-Themen 8
H Zufällig generierte Zahlen auf Eingabe prüfen Java Basics - Anfänger-Themen 5
S Prüfen ob bestimmter Ordner geöffnet ist (Windows XP) Java Basics - Anfänger-Themen 5
Ruvok Prüfen ob bestimmtest Element existiert im Array Java Basics - Anfänger-Themen 11
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
W char-Array auf bestimmte Zeichen prüfen Java Basics - Anfänger-Themen 10
S String auf Pallindromeigenschaft prüfen Java Basics - Anfänger-Themen 15
AssELAss Datums-Objekt prüfen ob im gleichen Monat? Java Basics - Anfänger-Themen 5
Screen Input/Output Wie prüfen ob Stream1 in Stream2 enthalten ist (on-the-fly) ? Java Basics - Anfänger-Themen 5
P Seite auf Inhalt prüfen Java Basics - Anfänger-Themen 2
I Prüfen ob Webseite existiert Java Basics - Anfänger-Themen 3
Z Inputs prüfen Java Basics - Anfänger-Themen 6
G Textdatei auf Dubletten prüfen Java Basics - Anfänger-Themen 8
I Prüfen von zwei Listen Java Basics - Anfänger-Themen 1
K zwei Rechtecke auf Berührung prüfen Java Basics - Anfänger-Themen 2
G String auf Format prüfen Java Basics - Anfänger-Themen 3
J Eingabewert übergeben und prüfen von showInputDialog Java Basics - Anfänger-Themen 4
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3
S Array befüllen & auf doppelte werte prüfen Java Basics - Anfänger-Themen 6
M Prüfen, ob Zeichen eine Zahl ist Java Basics - Anfänger-Themen 3
M Punkt auf eine Farbe prüfen Java Basics - Anfänger-Themen 8
C Datentypen Prüfen of eine Zahl Quadratzahl ist Java Basics - Anfänger-Themen 2
K Eindimensionalen Array prüfen Java Basics - Anfänger-Themen 5
M Konstruktor auf null prüfen, Arrays Java Basics - Anfänger-Themen 9
O Prüfen ob ein String den selben Namen hat wie eine Booleanreihe? Java Basics - Anfänger-Themen 17
J Arrays prüfen und über if Bedingung ausgeben Java Basics - Anfänger-Themen 15
B Interface Generics: prüfen ob Interface deklariert wird Java Basics - Anfänger-Themen 18
L Erste Schritte Einträge in ArrayList prüfen Java Basics - Anfänger-Themen 4
S OOP long prüfen Java Basics - Anfänger-Themen 5
L Eine ArrayList auf gleiche Inhalte prüfen Java Basics - Anfänger-Themen 10
Rayo Eingelesene Ascii Zahlen wie normale Zahlen prüfen Java Basics - Anfänger-Themen 4
K HashMap auf leere Key-Value-Paare prüfen Java Basics - Anfänger-Themen 14
N Prüfen ob Objekt existiert Java Basics - Anfänger-Themen 6
I Mehrere ArrayLists mit einer for( : ) Schleife auf Inhalt prüfen Java Basics - Anfänger-Themen 6
A Prüfen ob Datei existiert Java Basics - Anfänger-Themen 9
G Verfügbare Clients prüfen ohne ping Java Basics - Anfänger-Themen 12
P JSP Werte übergeben und prüfen Java Basics - Anfänger-Themen 4
A Anfängerfrage: Zahlformat prüfen Java Basics - Anfänger-Themen 4
J Field auf Datentyp prüfen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben