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!