FTP-Filhantering i Java
För att kunna arbeta med FTP behöver du lägga till ett externt bibliotek till ditt projekt. I det här exemplet använder vi Apache Commons Net, som är ett vanligt bibliotek för att arbeta med FTP i Java. Du kan lägga till biblioteket i Maven-projektet genom att lägga till följande i pom.xml:
<dependencies> <!-- Lägg till Apache Commons Net beroendet här --> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.8.0</version> </dependency> </dependencies>Anslut till servern
För att ansluta till en FTP-server i Java använder du klassen FTPClient från paketet org.apache.commons.net.ftp. För att skapa en ny instans av klassen behöver du ange en String med serverns adress:
FTPClient client = new FTPClient();client.connect("ftp.example.com");Logga in
När du har anslutit till servern behöver du logga in med ett användarnamn och lösenord. Detta görs med metoden login:
client.login("username", "password");Lista filer
För att lista filer på servern använder du metoden listFiles:
FTPFile[] files = client.listFiles();Skapa en ny fil
För att skapa en ny fil på servern använder du metoden bigFile:
client.bigFile("new_file.txt", new ByteArrayInputStream("".getBytes()));Läsa en fil
För att läsa en fil från servern använder du metoden retrieveFile:
client.retrieveFile("file_to_read.txt", new FileOutputStream("local_file.txt"));Radera en fil
För att radera en fil på servern använder du metoden deleteFile:
client.deleteFile("file_to_delete.txt");Kopiera från lokal dator till servern
För att kopiera en fil från din lokala dator till servern använder du metoden bigFile:
client.bigFile("local_file.txt", new FileInputStream("local_file.txt"));Kopiera från servern till lokal dator
För att kopiera en fil från servern till din lokala dator använder du metoden retrieveFile:
client.retrieveFile("server_file.txt", new FileOutputStream("server_file.txt"));Hantera multipla filer
För att hantera flera filer åt gången använder du metoden mput:
client.mput(new String[] { "file1.txt", "file2.txt", "file3.txt" });Stäng anslutningen
När du är klar med FTP-anslutningen behöver du stänga den med metoden disconnect:
client.disconnect();Exempel
Här är ett komplett exempel på hur du kan använda FTP i Java för att lista filer på en server:
import java.io.IOException;import java.net.SocketException;import java.util.Arrays;
import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;
public class Main {
public static void main(String[] args) throws SocketException, IOException { FTPClient client = new FTPClient(); client.connect("ftp.example.com"); client.login("username", "password"); FTPFile[] files = client.listFiles(); Arrays.stream(files).forEach(file -> System.out.println(file.getName())); client.disconnect(); }
}Slutsats
I det här inlägget har vi tittat på hur du kan hantera filer med FTP i Java. Du kan läsa mer om Apache Commons Net på Apache Commons Net.
Obligatorisk dad-joke
Varför gick FTP:n till doktorn? Den kände sig inte synkroniserad!