getfiles ( ) { return Bestandenoverzicht ; } } < br > Deze klasse geeft de gebruiker een dialoogvenster haar vragen om een of meer bestanden selecteert u . Deze bestanden worden vervolgens opgeslagen in een lijst voor later in het programma gebruiken . Kopen van 2
Maak de FTPuploadClient klasse . Deze klasse zal een verbinding initialiseren naar een FTP -server en upload een bestand naar die server . Plaats de volgende code in dat bestand
importeren java.io.File
; . Import java.io.FileInputStream , import java.io.FileNotFoundException , import java.io.IOException , import java.io.OutputStream ; import java.net.MalformedURLException , import java.net.URL , import java.net.URLConnection ; .
/*** Deze klasse upload bestanden
naar een FTP -server * @ author Kevin Walker ** /public class FTPuploadClient {
private String gastheer
; private String gebruiker ; private String vergeten ;
prive URLConnection conn
;
openbare FTPuploadClient
( String host, String gebruiker , String wachtwoord ) { < br
this.host > = host; this.user = gebruiker ; this.password = wachtwoord ;
}
public void uploadfile ( File f ) op Twitter gooit FileNotFoundException , MalformedURLException , IOException {if ( f.exists ( ) | | f.canRead ( ) ! ) werpen een nieuw FileNotFoundException ( ) ;
URL url
= nieuwe URL ( " ftp://" + user + " : " + wachtwoord + " @ " + gastheer + " /" + f.getName ( ) + " , type = i " ) ;
conn = url.openConnection ( ) ; conn.setDoOutput ( true); conn.connect ( ) ;
OutputStream
out = conn.getOutputStream ( ) ;
FileInputStream
in = new FileInputStream ( f ) ; byte [ ] buffer = new byte [ 16384 ] ;
int b ;
terwijl ( ( b = in.read ( buffer ) ) > 0 ) { out.write ( buffer , 0 , b ) ; } in.close ( ) ; out.flush ( ) ; out.close ( ) ;
} }
3
Maak de BulkUploader klasse . Deze klasse zal de vorige twee klassen samen te binden . Het vraagt de gebruiker om een hostnaam te bieden waar ze de bestanden wilt evenals haar gebruikersnaam en wachtwoord voor die host uploaden. Vervolgens gebruikt het FileList klasse we gemaakt in stap een om de gebruiker voor de bestanden die zij wenst te uploaden vragen . Ten slotte gaat zij door de lijst met bestanden , een voor een , uploaden ieder naar de server op zijn beurt gebruik van de FTPuploadClient klasse gemaakt in stap 2
import java.io.File
; . Import java.io.FileNotFoundException , import java.io.IOException , import java.net.MalformedURLException , import java.util.ArrayList , import javax.swing.JOptionPane ;
/*** Deze klasse
bevat een voorbeeld belangrijkste functie om het gebruik aan te tonen van de twee klassen * @ author Kevin Walker * /public class BulkUploader {
statische FileList overzicht
= new FileList ( ) ; . statische FTPuploadClient FTPC ;
public static void main ( String
[ ] args ) {
String
hostname , gebruikersnaam , pw ;
hostname = JOptionPane.showInputDialog ( " Wat is de hostname ? ' ) ; user = JOptionPane.showInputDialog ( " Wat is de gebruikersnaam ?' ) ; pw = JOptionPane.showInputDialog ( " Wat is de pw ? ' ) ;
FTPC = new FTPuploadClient
( hostname , gebruiker , pw ) ;
list.chooseFiles ( ) op ; ArrayList FLIST = list.getFiles ( ) ;
voor ( file f : FLIST ) { try { ftpC.uploadFile ( f ) ;} catch ( FileNotFoundException e ) { JOptionPane.showConfirmDialog ( null , "Het bestand " + f . getName ( ) + " kon niet worden gevonden of is niet leesbaar . " ) ;} catch ( MalformedURLException e ) { JOptionPane.showConfirmDialog ( null , " De hostnaam " + hostname + " lijkt niet geldig te zijn . " ) ; } catch ( IOException e ) { JOptionPane.showConfirmDialog ( null , " het bestand kan niet worden geschreven naar de server misschien de gebruikersnaam of het wachtwoord verkeerd zijn . ? ' ) ; } } } }
< br >