NylePryde2001 Geschrieben 24. September 2002 Geschrieben 24. September 2002 Hi Leute, ich habe folgendes Problem: Ich will auf einen FTP Server (für den man kein Benutzernamen/Passwort braucht) eine Textdatei schreiben, der Inhalt der Textdatei steht in einer anderen Datei die ich schon mit´dem FileReader geöffnet habe, so weit so gut. // myOutputFile = new File("ftp:\hdhcrm01:0021\\crmcatalog\\test.txt"); // in dieser Zeile liegt das Problem, wenn ich es so mache, dann hängt er mir an den FTP pfad noch : C:\blabla\jbuilder\project\blablaba vorne an. hat jemand ne Idee? MFG Nyle:confused: Zitieren
derflix Geschrieben 25. September 2002 Geschrieben 25. September 2002 Hallo Nyle, so einfach funktioniert das mit FTP und Java leider nicht. Die Dateifunktionen von Java sind nicht darauf ausgelegt mit Dateien zu arbeiten, auf die über einen FTP-Server zugegriffen werden muss. Es gibt allerdings einige Java-Beans die FTP-Funktionalitäten bieten. Zum Beispiel hier: http://www.geocities.com/SiliconValley/Code/9129/javabean/ftpbean/ http://www.savarese.org/oro/downloads/index.html Hoffe das hilft. derflix Zitieren
T. Schiffler Geschrieben 25. September 2002 Geschrieben 25. September 2002 Hi Das ist nicht ganz richtig, eine FTP-Anbindung ist mit Java sehr einfach ! Es gibt ein Java-Bean mit dessen Hilfe man einen eigenen FTP-Client entwickeln kann und somit Dateien auf Server laden oder eben herunterladen kann ! ! ! Einfach mal bei Java.sun.com suchen, da gibt es sowas (habe es selbst schon in einem Projekt genutzt) Gruß Erbeere Zitieren
NylePryde2001 Geschrieben 26. September 2002 Autor Geschrieben 26. September 2002 yo danke für den Tip! habs jetzt hingekriegt.. Zitieren
NylePryde2001 Geschrieben 26. September 2002 Autor Geschrieben 26. September 2002 hi ihr! hab da noch ne kleine frage. Muss ich irgenwas dabei beachten, wenn ich den servernamen in nem string abspeichere? Mit ftpClient.openServer(server); öffne ich ja den Server, den ich im String server angeben habe. Er gibt mir dann aber ne I/O Exception. mein string sieht so aus: String server="ftp://hdhcrm01/crmcatalog/"; irgendwelche tips? wäre super! Zitieren
T. Schiffler Geschrieben 26. September 2002 Geschrieben 26. September 2002 Hi Ich kann mich nicht genau erinnern aber ich glaube dass das so nicht geht Vermutlich musst Du den FTP-Server erstmal mit dem Namen / IP öffnen und dann in das entsprechende Verzeichnis wechseln Also gib in der Funktion mal nur den Namen des Servers an ! Gruß Erbeere Zitieren
NylePryde2001 Geschrieben 26. September 2002 Autor Geschrieben 26. September 2002 erstmal danke, das hat jetzt geklappt, aber nun habe ich schon wieder ein Problem,(jaja ich weiß irgendwie will der die Datei nicht annehmen.. bzw. nicht schreiben.. hier ist mal mein code: public class Test extends Object { public static void main(String[] args) { // eine Variable definieren, welche einen Integer aufnimmt int i; // eine Variable definieren, welche ein Objekt der Klasse String aufnimmt // String mySourceFileName = "c:\\winzip.log"; // eine Variable definieren, welche ein Objekt der Klasse FileReader aufnimmt FileReader myFileReaderObject = null; // eine Variable definieren, welche ein Objekt der Klasse FileWriter aufnimmt FileWriter myFileWriterObject; // eine Variable definieren, welche ein Objekt der Klasse File aufnimmt File myOutputFile = null; // Variablen für den FTP Zugang anlegen String server="10.128.17.228"; String user="anonymous"; String password="fantbert@hotmail.com"; String path="/crmcatalog"; String filename="winzip.log"; int c,d; try { // ein Objekt der Klasse FileReader erzeugen //myFileReaderObject = new FileReader( mySourceFileName ); // Hier legen wir fest, wie die Ausgabedatei heissen soll //myOutputFile = new File("c:\\zwischendatei.txt"); // Hier weisen wir dem FileWriterObject zu wo er den Ausgabestrom hinleiten soll //myFileWriterObject = new FileWriter(myOutputFile); // Die FTP Funktionen initialisieren FtpClient ftpClient=new FtpClient(); ftpClient.openServer(server); ftpClient.login(user, password); if (path.length()!=0) ftpClient.cd(path); ftpClient.binary(); TelnetOutputStream os=ftpClient.put(filename); File file_in=new File(filename); // An dieser Stelle tritt der Fehler auf: FileInputStream is=new FileInputStream(file_in); byte[] bytes=new byte[1024]; while ((c = is.read(bytes)) != -1) { //myFileWriterObject.write((char)c); os.write(bytes,0,c); is.close(); os.close(); ftpClient.closeServer(); } //myFileReaderObject.close(); // myFileWriterObject.close(); } catch (IOException ex) { System.out.println("Fehler beim Lesen der Datei"); } } /**Das Applet konstruieren*/ public Test() { } } Zitieren
derflix Geschrieben 26. September 2002 Geschrieben 26. September 2002 Zu Deiner Frage mit dem String: Es sollte kein Problem sein direkt den Hostnamen anzugeben, dieser sollte automatisch in die IP-Adresse aufgelöst werden. Allerdings ist das Format "ftp://hdhcrm01/crmcatalog/" so nicht richtig. Da der FTP-Klasse ja schon klar ist dass mit einem FTP-Server eine Verbindung aufgebaut werden soll ist die Angabe des Protokolls unnötig. Das benötigt man z.B. bei einem Browser, der ja auch z.B. http als Protokoll kennt. Wenn Du also den Hostnamen in der Form "www.irgendwas.de" angibst sollte es schon funktionieren. Verzeichnisse dürfen nicht mit angegeben werden. Nach dem Login kannst Du aber per chdir in das entsprechende Verzeichnis wechseln. Zitieren
NylePryde2001 Geschrieben 26. September 2002 Autor Geschrieben 26. September 2002 thx.. habs hingekriegt, vielen dank nochmal! Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.