ObjectInputStream im Netzwerk

JGogo

Mitglied
Hallo,

bin was Netzwerke betrifft leider gar nicht gut informiert, deshalb meine (hoffentlich simple) Frage:
Bei meiner Applikation lese ich serialisierte Daten einfach über ObjectInputStreams ein und speichere die mit einem ObjectOutputStream. Nun meine Frage: Geht das auch wenn ich die Daten auf einen Server im Netzwerk legen möchte damit ich von mehreren Rechnern aus diese Dateien einlesen kann?
Wenn ja, wie schaut da in Etwa der Dateiname bzw. der Pfad dazu aus?

Danke im Voraus!
 
I

irgendjemand

Gast
sorry .. aber was genau möchtest du ? und wie kommst du auf pfade und dateinamen ?

wenn du alles mit Object*Streams machst brauchst du auf dem server theoretisch garkeine physischen dateien *so fern genug RAM* ... ansonsten schreibst du einfach alle daten auf platte raus ...

oder

wenn du netzwerk-freigaben meinst sähe das in etwa so aus

win : "\\RECHNER\FREIGABE"
unix : "smb://rechner/freigabe" oder ähnlich
 

JGogo

Mitglied
Ok, hab es vielleicht ein bisschen eigenartig beschrieben. Was ich gern machen möchte ist folgendes:

Java:
public static void saveObject (Object test) {
      String pfad = "./data/test.ser";
        try {
        ObjectOutputStream out = new ObjectOutputStream (new FileOutputStream(pfad));
        out.writeObject (test);
        out.flush();
        out.close();
        }catch (IOException ex) {}
    }

public static Object readObject () {
      String pfad = "./data/test.ser";
      Object gelesen = new Object ();
        try {
        ObjectInputStream in = new ObjectInputStream (new FileInputStream(pfad));
        gelesen = in.readObject();
        in.close();
        }catch (FileNotFoundException ex) {}catch (Exception e) {}
       return gelesen;    
    }
...und das (oder von der Funktion her Ähnliches) auf einen Server im Netzwerk. Also einfach Daten auf einem Server speichern und lesen.
 
N

nillehammer

Gast
Prinzipiell kannst Du Objekte überall hin serialisieren. Wenn Du gerne bei Deiner jetztigen Lösung mit Filesystemzugriffen bleiben willst, musst Du im Betriebssystem dafür sorgen, dass es für Java so aussieht, als wäre die Platte des Servers Bestandteil des lokalen Filesystems. Das geht, in dem Du sie mit Hilfe eines entspr. Protokolls freigibst und dann mountest. Eine Möglichkeit sind Windowsfreigaben (Netzlaufwerk verbinden). In der Unixwelt wird auch sehr häufig NFS genommen.

Ansonsten wäre auch das wegscrheiben auf ftp-Server oder scp-Server denkbar. Dann musst Du Deinen Code aber anpassen. FileOutput-/InputStreams funktionieren dann nicht mehr.
 
I

irgendjemand

Gast
du könntest auch auf dem server einen eigenen dienst laufen lassen an den du dich verbindest und dann deine daten dorthin rausschreibst ...
der dienst kümmert sich dann um das rausschreiben auf platte bzw um das wieder einlesen ...

du könntest auch mit HTTP und web-sprachen wie php oder jsp arbeiten und die daten entsprechend senden / lesen ...

es gibt sehr viele möglichkeiten daten auf einen server auszulagern ...
welche du verwenden willst / kannst / für die empfehlenswert wäre hängt davon ab was du damit vorhast ...

so lange es aber lediglich um die speicherung irgendwelcher daten geht würde ich dir zu etablierten betriebssystemmitteln *netzlaufwerke / -freigaben* oder mapping tools *FTPtoDrive* vorschlagen welche es dir auf OS-ebene ermöglichen die server-platte als in das system eingebunden lokale platte zu nutzen *und dann mit java ganz normal mit file-i/o darauf zuzugreifen*
 

JGogo

Mitglied
Hallo,

danke für die Antworten!

Hab' mich nun ein bisschen umgeschaut und würde das gerne über einen FTP-Server (der ohnehin bereits vorhanden ist) machen. Dazu habe ich folgende Fragen:
1.) wenn ich nur Daten hochladen und lesen möchte, brauch ich da unbedingt so etwas wie Apache oder ftp4j?
2.) wie schreibe ich dann die Objekte am besten weg (sind i.d.R. ArrayLists mit Objekten, die dann eventuell andere Objekte besitzen,...), soll ich die einfach Serialisieren und dann das File hochladen, oder kann ich die Objekte direkt hochladen. Und wie ist dann der Weg zurück?

Wäre für Anregungen (und natürlich auch Code-Bsps.) echt dankbar!
 
I

irgendjemand

Gast
ich glaube beim dierekten arbeiten mit FTP unterstützt die SE-api nur das lesen vom FTP via URL.openConnection() *bin mir nicht ganz sicher*
für alles andere wirst du wohl eine lib brauchen *wobei hier die apache-libs weite verbreitung finden*

wie ich aber auch bereits sagte ist die speicherung deine sache ...

klar kannst du das objekt einfach serialisieren und dann den datenstrom als file auf den FTP laden ...
beim wieder einlesen fordest du nur das entsprechende file wieder an und deserialisierst den datenstrom ...

auch könntest du deine objekte mit einer cast-klasse selbst de/serialisieren ...
dafür gibt es die methoden writeObject und readObject ... das ganze kombiniert mit ein bisschen reflections ...
so könntest du dann die daten z.b. auch in einer datenbank speichern ...

allgemein ist das auslagern von serialisierten objekten auf einen remote-server nicht schwieriger als wenn du sie lokal speichern würdest ... nur der speicher-ort unterscheidet sich
 

JGogo

Mitglied
Hallo,

hab' jetzt testweise lokal einen FTP-Dienst gestartet (Windows 7), als Site habe ich "testLocalFtp" angegeben.
Hab mir auch die lib apache.commons.net runtergeladen und in mein Projekt eingebunden (und mir die API ein bisschen angesehen).

Bin ich so am richtigen Weg?

Java:
FTPClient client = new Client();
client.connect("hostname");
client.storeFile("test.ser", testInputstream);
client.disconnect();

Nur was ist da mein "hostname", bzw. wie finde ich den raus?
und wie bekomme ich nun eine ArrayList in meinen InputStream()?
Irgendwie glaube ich, dass ich schon über zu viele Ecken denke, über ein paar Code-Beispiele wäre ich echt dankbar!
 

JGogo

Mitglied
Ok, sorry, das mit Hostname hat sich erledigt!

Aber für die Tipps wie ich am vernünftigsten Objekte auf den Server lade und wieder lese, wäre ich nach wie vor echt dankbar!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D new ObjectInputStream(socket.getInputStream()); Netzwerkprogrammierung 15
G ObjectOutputStream und ObjectInputStream machen Ärger Netzwerkprogrammierung 17
F ObjectInputStream.readObject() mehrfach aufrufen Netzwerkprogrammierung 2
K ObjectInputStream EOF Netzwerkprogrammierung 6
G ObjectInputStream hängt ganzes Programm auf... Netzwerkprogrammierung 7
X ObjectInputStream StringCorruptedException Netzwerkprogrammierung 3
V StreamCorruptedException bei ObjectInputStream und ObjectOStream Netzwerkprogrammierung 5
S FileInputStream und ObjectInputStream Netzwerkprogrammierung 18
C Socket ObjectInputStream liest nur Objekte der jeweiligen Programminstanz Netzwerkprogrammierung 5
M InputStream and ObjectInputStream zur gleichen Zeit Netzwerkprogrammierung 11
J Socket ObjectInputStream prüfen Netzwerkprogrammierung 8
N Socket neue Referenz auf ObjectInputStream Netzwerkprogrammierung 13
E Rausfinden ob noch Objecte in ObjectInputStream Netzwerkprogrammierung 5
Y Problem mit ObjectInputStream beim lesen vom Socket Netzwerkprogrammierung 10
C komisches Problem / ObjectInputStream erstellt sich nicht Netzwerkprogrammierung 5
K ObjectInputStream mit CypherInputStream hängt Netzwerkprogrammierung 7
G Datei über ObjectInputStream versenden Netzwerkprogrammierung 8
R ObjectOutput- / ObjectInputStream Exception? Netzwerkprogrammierung 2
E ObjectInputStream/ObjectOutputStream nicht erzeugbar Netzwerkprogrammierung 2
T Problem mit ObjectInputStream Netzwerkprogrammierung 2
C Kollision von ObjectInputStream und BufferedReader ? Netzwerkprogrammierung 6
G ObjectInputStream gebuffert? Netzwerkprogrammierung 3
I ActiveMQ-Messages übers Netzwerk Netzwerkprogrammierung 13
M Socket Netzwerk Übertragung zwischen 4 Clients Netzwerkprogrammierung 2
temi (Netzwerk-) Kommunikation zwischen Anwendungen. Wie? Netzwerkprogrammierung 5
W Das Netzwerk entfernen mit Wifi Manager Netzwerkprogrammierung 1
F Neuronales Netzwerk - Genetischer Algorithmus Netzwerkprogrammierung 0
windl Sporadische Aussetzer im Netzwerk Netzwerkprogrammierung 10
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
MaxG. Netzwerk Ping falsches ergebnis Netzwerkprogrammierung 7
T Netzwerk Login Felder ansprechen Netzwerkprogrammierung 1
B Netzwerk - Fernsteuerung Netzwerkprogrammierung 1
S Netzwerk-Framework gesucht Netzwerkprogrammierung 6
J Hilfe beim programmiern einer App zur Anmeldung im Wlan-Netzwerk Netzwerkprogrammierung 0
C Netzwerk Portzuweisungsproblem Netzwerkprogrammierung 0
I PingPong Spiel übers Netzwerk Netzwerkprogrammierung 1
M Verbindung zwischen zwei Pc in dem Selben Netzwerk Netzwerkprogrammierung 8
M PongSpiel Netzwerk Netzwerkprogrammierung 1
D Geräte im Lokalen netzwerk auflisten Netzwerkprogrammierung 1
fLooojava Daten an ein Arduino im selben Netzwerk senden Netzwerkprogrammierung 1
I Netzwerk FileShare Program Netzwerkprogrammierung 2
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
D Ermitteln ob WLAN-Netzwerk UDP unterstützt Netzwerkprogrammierung 1
O 4Gewinnt Multiplayer - Netzwerk Problem (TCP) Netzwerkprogrammierung 1
B WebSocket Verbindungsaufbau aus localen Netzwerk Netzwerkprogrammierung 2
S Bilder durch's Netzwerk usw ... Netzwerkprogrammierung 10
Kr0e Dezentrales Soziales Netzwerk Netzwerkprogrammierung 48
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
vandread Zugriff auf Soziales Netzwerk mittels Java? Netzwerkprogrammierung 4
P Automatische Host suche im Netzwerk Netzwerkprogrammierung 3
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
S Netzwerk Verbindungsproblem mit Cajo Netzwerkprogrammierung 5
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
J Komplexes Netzwerk-Spiel im Internet Netzwerkprogrammierung 13
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
A java im netzwerk anderen rechner runterfahren Netzwerkprogrammierung 3
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
M Netzwerk Programmierung Netzwerkprogrammierung 2
F Netzwerk-Designkonzept Netzwerkprogrammierung 2
D Ring-Netzwerk - wie fange ich an? Netzwerkprogrammierung 3
X Password übers Netzwerk schicken jPasswordField Netzwerkprogrammierung 2
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
c_sidi90 Alle Rechner im Netzwerk ermitteln Netzwerkprogrammierung 17
D Netzwerk-To-Do-Liste Netzwerkprogrammierung 5
Semox Socket Selbstgeschriebenen Webserver im lokalen Netzwerk publizieren? Netzwerkprogrammierung 4
S Socket nach anderen clients im netzwerk suchen Netzwerkprogrammierung 3
T Netzwerk-Dateiübertragung optimieren Netzwerkprogrammierung 15
G Netzwerk Speed checken Netzwerkprogrammierung 3
L Socket Socketverbindung nur im lokalen Netzwerk Netzwerkprogrammierung 12
F Char über Netzwerk senden Netzwerkprogrammierung 6
P SocketServer im lokalen netzwerk suchen Netzwerkprogrammierung 2
I Objekte über das Netzwerk Netzwerkprogrammierung 5
B RMI RMI, Callback und Netzwerk Netzwerkprogrammierung 6
agent47 IP Adressen im Lokalen Netzwerk Scannen Netzwerkprogrammierung 7
S Netzwerk und Objekte Netzwerkprogrammierung 5
G Netzwerk IP Frage Netzwerkprogrammierung 4
Akrillo Datei per Netzwerk senden Netzwerkprogrammierung 10
W funktionen übers netzwerk nutzen Netzwerkprogrammierung 4
Kr0e Versenden von Daten übers Netzwerk Netzwerkprogrammierung 30
M upnp Device-Discovery im Netzwerk Netzwerkprogrammierung 5
T Administration von Software auf Clients im Netzwerk Netzwerkprogrammierung 6
H MySQL übers Netzwerk Netzwerkprogrammierung 9
A Probleme mit kleinem Netzwerk Programm Netzwerkprogrammierung 30
T Pfadangabe beim kopieren übers Netzwerk Netzwerkprogrammierung 5
G Verschlüsselte Strings über Netzwerk verschicken Netzwerkprogrammierung 19
D robustes Netzwerk Netzwerkprogrammierung 2
N HTML-Übertragung im lokalen Netzwerk mit Java - wie? Netzwerkprogrammierung 6
G Datei performant im Netzwerk verschieben Netzwerkprogrammierung 4
D BufferedImage über das Netzwerk senden Netzwerkprogrammierung 2
E Netzwerk Fehlererkennung Netzwerkprogrammierung 11
M Pc's im Netzwerk auflisten Netzwerkprogrammierung 2
T Welches Netzwerk ist am bestern für. Netzwerkprogrammierung 2
ModellbahnerTT Problem feste String ins Netzwerk zu geben Netzwerkprogrammierung 5
A IRC-Server für das lokale Netzwerk? Netzwerkprogrammierung 12
TheJavaKid Anzahl der Server im Netzwerk Netzwerkprogrammierung 7
R Spiel auf Netzwerk auslegen? Netzwerkprogrammierung 10
R Applet & Netzwerk Netzwerkprogrammierung 4
K netzwerk durchsuchen Netzwerkprogrammierung 10
A array übers netzwerk (anfänger) Netzwerkprogrammierung 8
T Möglichkeit über das Netzwerk eine Funktion zu starten? Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben