# ECF oder EFS zum Datentransfer



## dzim (11. Mai 2009)

Hallo,

ich habe ab und an mal mit Dateien zu tun, die von A nach B müssen. An und für sich einfach, schnell mit nem FileInputStream auslesen und gleich wieder in einen FileOutputstream werfen.
Geht für Binärdateien im lokalen Betriebssystem - aber (noch) ist die API (wenn man sie überhaupt so nennen will) von Java eher... nun sagen wir mal: schlecht.
Nachdem ich einmal beim kopieren von XML-Dateien korrupte, nicht UTF-8 konforme, Dateien erhielt, habe ich auf EFS zurückgegriffen - in seiner einfachsten Form, wo kopieren ein 4-Zeiler oder so wird.

Jetzt steh ich ein bisschen auf dem Schlauch, denn ich will Dateien per SCP von einem anderen Rechner herunterladen. Java kann man da schon mal vergessen, aber bei Eclipse gibt es ja zum Glück entsprechende Projekte.
Ich habe mir speziell ECF angeschaut, da dieses Projekt scheinbar schon einen SCP-Provider implementiert hat.

Die Frage ist:
1) Was ist besser - ECF oder EFS?
2) Wie kann ich die jeweilige API dazu nutzen - bislang hat die Doc nichts gebracht und googlen war bisher zu dem Thema der konkreten Anwendung (speziell von SCP) nicht erfogreich.

Habt ihr da schon Erfahrungen gesammelt? Könnt ihr mir Hinweise geben?

Danke schon mal!


----------



## Wildcard (11. Mai 2009)

> ich habe ab und an mal mit Dateien zu tun, die von A nach B müssen. An und für sich einfach, schnell mit nem FileInputStream auslesen und gleich wieder in einen FileOutputstream werfen.
> Geht für Binärdateien im lokalen Betriebssystem - aber (noch) ist die API (wenn man sie überhaupt so nennen will) von Java eher... nun sagen wir mal: schlecht.
> Nachdem ich einmal beim kopieren von XML-Dateien korrupte, nicht UTF-8 konforme, Dateien erhielt, habe ich auf EFS zurückgegriffen - in seiner einfachsten Form, wo kopieren ein 4-Zeiler oder so wird.


Das ist dann aber deine eigene Schuld. FileChannel#transferTo ist nicht unbedingt eine Raketnwissenschaft.


> Was ist besser - ECF oder EFS?


Zwei Unterschiedliche Dinge. EFS ist nur eine abstraktionsschicht um verschieden virtuelle Dateisysteme auf einen Nenner zu bringen, ECF ist explizit zur Kommunikation mit Fremdsystemen.
ECF ist allerdings noch einiges mehr, daher würde sich eventuell anbieten einen eigenen Handler ins EFS zu pluggen das per SSH kommuniziert.
Die Sparvariante ist natürlich immer: einfach das Betriebssystem per SSH das entfernte Dateisystem mounten, dann ist es für die Java Applikation ein lokaler Zugriff.


----------



## dzim (12. Mai 2009)

Ok, vielleicht wirklich eigene Schuld, aber das "Problem" - wenn es denn überhaupt eins war - ist ja gelöst.

Einfach nur per fuse was zu mounten ist mir ehrlich gesagt zu billig, auch wenn es tatsächlich eine Variante wäre. Ich würde dann lieber SCP nutzen - wie auch immer.



> ECF ist allerdings noch einiges mehr, daher würde sich eventuell anbieten einen eigenen Handler ins EFS zu pluggen das per SSH kommuniziert.


Ok... Meinetwegen... Nur: Wie?


----------



## Wildcard (12. Mai 2009)

So:
EclipseZone - Eclipse File System


----------



## dzim (13. Mai 2009)

Sieht ja ganz gut aus. Die SSH-Geschichte müsste ich aber immer noch über ECF machen, oder sehe ich das falsch?


----------



## Wildcard (13. Mai 2009)

Nö, schau mal was es an SSH Bibliotheken für Java gibt, oder ob der SSH Teil von ECF so losgelöst ist, das du in getrennt verwenden kannst.


----------

