Avatar billede nielsbrinch Nybegynder
03. februar 2002 - 01:22 Der er 7 kommentarer og
1 løsning

Skriv og læs fra fil på internetserver

Jeg vil læse fra en fil på en webside. F.eks. http://www.minhjemmeside.dk/almindelig.txt

Det skal gerne fungere f.eks. ved hjælp af BufferedReader.

Jeg vil altså kunne læse http://www.minhjemmeside.dk/almindelig.txt ind i programmet, og hvis jeg kunne få lov at skrive til den igen, ville det være perfekt (jeg har ftp brugernavn og adgangskode)
Avatar billede lbhansen Nybegynder
03. februar 2002 - 01:50 #1
At læse den url vil ikke give anledning til de store problemer
java.net.URL url = new java.net.URL("http://www.minhjemmeside.dk/almindelig.txt");
java.io.BufferedReader br = new java.io.BufferedReader(new java.io.InputStreamReader(url.openStream()));

Nu kan du læse med din BufferedReader

At skrive til ftp kan dog godt give anledning til problemer. Jeg
har prøvet med JDK1.2 fra IBM, og deres ftp implementering tilader
ikke anvendelse af outputstreams.
Avatar billede nielsbrinch Nybegynder
03. februar 2002 - 02:06 #2
Mange tak for svaret, men jeg lader det lige hænge lidt - jeg vil nemlig gerne vide mere om den ftp implementering ... det lyder interessant.

For hvis der er sådan en ftp-implementering må den jo kunne noget - f.eks. uploade en fil? - det ville jo være løsningen på problem #2
Avatar billede lbhansen Nybegynder
03. februar 2002 - 02:07 #3
hverken suns eller ibms implementering tillader output, men jeg tester lige et eksternt bibliotek, og poster igen lige om lidt(jeg hader når jeg ikke kan sove)
Avatar billede lbhansen Nybegynder
03. februar 2002 - 02:15 #4
jeg fandt det her bibliotek, som er licenseret under LGPL, så du kan bruge det i din applikation
http://www.enterprisedt.com/downloads/ftp.html

Her er en lille eksempel klasse, som både læser og skriver fra en ftp server. Dokumentationen ligger online, så du skal nok lige kigge på at lave en chdir("directory") på din ftpclient.

import java.io.*;
import java.net.*;

class ReadFtp {

public static void main(java.lang.String[] args) throws Exception{
    String text = readFromFTP("host","user","pass","remote.file");
    System.out.println(text);
    writeToFtp("host","user","pass","remote.file","text");
   
}
public static String readFromFTP(String host, String username, String password, String file) throws Exception{
    com.enterprisedt.net.ftp.FTPClient client = new com.enterprisedt.net.ftp.FTPClient(host,21);
    client.login(username,password);
    byte bytes[] = client.get(file);
    client.quit();
    return new String(bytes);
}
public static void writeToFtp(String host, String username,String password, String file,String text) throws Exception {
    com.enterprisedt.net.ftp.FTPClient client = new com.enterprisedt.net.ftp.FTPClient(host,21);
    client.login(username,password);
    client.put(text.getBytes(),file);
    client.quit();
}
}
Avatar billede nielsbrinch Nybegynder
03. februar 2002 - 02:24 #5
Fantastisk, Ib - mange tak for hjælpen ... jeg ved ikke om det virker endnu, men det finder jeg ud af imorgen! Herligt at der er så mange kloge hoveder der gider hjælpe mindre kloge hoveder her på Eksperten
Avatar billede lbhansen Nybegynder
03. februar 2002 - 02:26 #6
Det er jo det forummet er her for, og hvis vi skulle støde på hinanden igen, så hedder jeg ikke ib, men det er et lille 'l' :)
Avatar billede nielsbrinch Nybegynder
03. februar 2002 - 12:47 #7
Det virker - hu-hej hvor det går ... !

Man kan jo så nemt som ingenting lave en FTP-klient med de klasse-filer!
Avatar billede lbhansen Nybegynder
03. februar 2002 - 12:52 #8
ja. en simplere en kan sagtens lade sig gøre med det bibliotek
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester