Zusätzliche Parameter für Methode hinzufügen?

Status
Nicht offen für weitere Antworten.

Pago83

Bekanntes Mitglied
Hallo zusammen,

ich möchte die folgende Methode etwas anpassen:

Code:
    public void exportFile(String localFile, String user, String host, String remoteFile, Session session)
    //public void exportFile(String localFile, String localFileFtp, String user, String host, String remoteFile, String remoteFileFtp, Session session)
    {
        FileInputStream fis = null;
        try
        {
            String command = "scp -p -t " + remoteFile;
            Channel channel = session.openChannel("exec");
            ((ChannelExec) channel).setCommand(command);

            OutputStream out = channel.getOutputStream();
            InputStream in = channel.getInputStream();

            channel.connect();

            if (checkAck(in) != 0)
            {
                System.exit(0);
            }

            long filesize = (new File(localFile)).length();
            command = "C0644 " + filesize + " ";
            if (localFile.lastIndexOf('/') > 0)
            {
                command += localFile.substring(localFile.lastIndexOf('/') + 1);
            }
            else
            {
                command += localFile;
            }
            command += "\n";
            out.write(command.getBytes());
            out.flush();
            if (checkAck(in) != 0)
            {
                System.exit(0);
            }

            fis = new FileInputStream(localFile);
            byte[] buf = new byte[1024];
            while (true)
            {
                int len = fis.read(buf, 0, buf.length);
                if (len <= 0)
                    break;
                out.write(buf, 0, len);
            }
            fis.close();
            fis = null;
            buf[0] = 0;
            out.write(buf, 0, 1);
            out.flush();
            if (checkAck(in) != 0)
            {
                System.exit(0);
            }
            out.close();

            channel.disconnect();
        }
        catch (Exception e)
        {
            System.out.println(e);
            try
            {
                if (fis != null)
                    fis.close();
            }
            catch (Exception ee)
            {
                System.out.println(ee);
            }
        }
    }

Die Methode soll zwei zusätzliche Parameter übergeben bekommen (siehe Kommentar). Der String localFileFtp soll sich wie localFile verhalten, ebenso der String remoteFileFtp zu remoteFile.

Wie kann ich die Methode am elegantesten umstellen, so dass localFileFtp (remoteFileFtp) sich genauso verhält wie localFile (remoteFile)?

Hinweise sind erwünscht ;-)

MfG Pago
 
S

SlaterB

Gast
'sich Verhalten wie' ist etwas merkwürdig, das musst du näher erläutern,
meinst du vielleicht

Code:
String command = "scp -p -t " + remoteFile; 
if (remoteFileFtp != null) {
  command += " "+remoteFileFtp 
}
statt
String command = "scp -p -t " + remoteFile;
oder soll remoteFileFtp das ursprüngliche remoteFile ersetzen?
oder oder, muss man alles programmieren,
 

Pago83

Bekanntes Mitglied
Also,

das localFileFtp soll genau das machen wie das localFile (ist halt das selbe in grün, nur für ein FTP File).

Bei remoteFileFtp ebenso. Es soll genau das machen, was remoteFile macht.

Hoffe, es ist jetzt klar, was ich erreichen möchte.
 
S

SlaterB

Gast
dann bin ich für

Code:
public void exportFileNormal(String localFile, String user, String host, String remoteFile, Session session) {
  ...
}

public void exportFileFTP(String localFileFtp, String user, String host,  String remoteFileFtp, Session session) 
    { 
exportFileNormal(..);
}
oder, wenn exportFileFTP() wirklich beide Strings übergeben bekommt,
dann exportFileNormal() zweimal aufrufen,

oder in exportFileFTP prüfen, welche Strings sinnvoll befüllt sind
und abhängig davon exportFileNormal() mit den richtigen Strings aufrufen
 

Pago83

Bekanntes Mitglied
Habe jetzt mal folgende Variante probiert:

Code:
    public void exportFiles(String localFileFtp, String user, String host, String remoteFile, Session session)
    {
        exportFile(localFile, user, host, remoteFile, session);
    }

Bekomme die Fehlermeldung, localFile cannot be resolved.

Hier noch einmal die Ausgangsmethode:

Code:
    public void exportFile(String localFile, String user, String host, String remoteFile, Session session)
    {
        FileInputStream fis = null;
        try
        {
            String command = "scp -p -t " + remoteFile;
            Channel channel = session.openChannel("exec");
            ((ChannelExec) channel).setCommand(command);

            OutputStream out = channel.getOutputStream();
            InputStream in = channel.getInputStream();

            channel.connect();

            if (checkAck(in) != 0)
            {
                System.exit(0);
            }

            long filesize = (new File(localFile)).length();
            command = "C0644 " + filesize + " ";
            if (localFile.lastIndexOf('/') > 0)
            {
                command += localFile.substring(localFile.lastIndexOf('/') + 1);
            }
            else
            {
                command += localFile;
            }
            command += "\n";
            out.write(command.getBytes());
            out.flush();
            if (checkAck(in) != 0)
            {
                System.exit(0);
            }

            fis = new FileInputStream(localFile);
            byte[] buf = new byte[1024];
            while (true)
            {
                int len = fis.read(buf, 0, buf.length);
                if (len <= 0)
                    break;
                out.write(buf, 0, len);
            }
            fis.close();
            fis = null;
            buf[0] = 0;
            out.write(buf, 0, 1);
            out.flush();
            if (checkAck(in) != 0)
            {
                System.exit(0);
            }
            out.close();

            channel.disconnect();
        }
        catch (Exception e)
        {
            System.out.println(e);
            try
            {
                if (fis != null)
                    fis.close();
            }
            catch (Exception ee)
            {
                System.out.println(ee);
            }
        }
    }

Muss ich localFile global anlegen oder was muss ich ändern?

MfG Pago
 

AlArenal

Top Contributor
Pago83 hat gesagt.:
Habe jetzt mal folgende Variante probiert:

Code:
    public void exportFiles(String localFileFtp, String user, String host, String remoteFile, Session session)
    {
        exportFile(localFile, user, host, remoteFile, session);
    }

Und was wundert dich daran? Immerhin gibts dort keine Variable localFile...
 

Pago83

Bekanntes Mitglied
Das ist mir schon klar, ich möchte ja das localFile aus der exportFile Methode haben.

Muss ich das zu diesem Zwecke global anlegen?
 

mikachu

Top Contributor
Code:
public void exportFiles(String localFileFtp, String user, String host, String remoteFile, Session session)
und
Code:
public void exportFiles(String localFile, String user, String host, String remoteFile, Session session)
in einer klasse zusammen geht ?!?

ich glaube nicht
 

Pago83

Bekanntes Mitglied
Also,

bisher sah meine Methode für die beiden Exports so aus:

Code:
    public void exportFiles(String localFile, String localFileFtp, String user, String host, 
                            String remoteFile, String remoteFileFtp, Session session)
    {
        exportFile(localFile, user, host, remoteFile, session);
        exportFile(localFileFtp, user, host, remoteFileFtp, session);
    }

Ist aber etwas unübersichtlich, das muss (und wird sicherlich) ja auch anders gehen.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Klassen Vererbung und zusätzliche Unterklassen Java Basics - Anfänger-Themen 23
D Zusätzliche Packages benutzen? Java Basics - Anfänger-Themen 6
J Zusätzliche Console Öffnen Java Basics - Anfänger-Themen 6
A Beim txt Datei einlesen kommen zusätzliche Lehrzeichen dazu. Java Basics - Anfänger-Themen 5
S Double bis bestimmte Nachkommzahl vergleichen (ohne zusätzliche Libs) Java Basics - Anfänger-Themen 12
J Zusätzliche jar dateien in Java APplet (hsqldb.jar) Java Basics - Anfänger-Themen 8
G zusätzliche "" bei Pfadangabe z.B. bei FileReader Java Basics - Anfänger-Themen 2
T eine zusätzliche Virtualle Maus Java Basics - Anfänger-Themen 11
G hilfe! zusätzliche java bibliothek einbinden Java Basics - Anfänger-Themen 3
C Interface Parameter und Rückgabewerte in Lambda Ausdrücken verwenden Java Basics - Anfänger-Themen 16
C Parameter in verschiedenen Anzahl und Typen Java Basics - Anfänger-Themen 6
M methode aufrufen ohne parameter Java Basics - Anfänger-Themen 1
MiMa Java Doc mehrere Return Parameter Java Basics - Anfänger-Themen 11
BeginnerJava "Weihnachtsbäume" anzeigen: Höhe als Parameter Java Basics - Anfänger-Themen 1
R Methoden Werte einer ArrayList als Parameter übergeben. Java Basics - Anfänger-Themen 4
I Optionaler Parameter bei Methode, der nur optional ist? Java Basics - Anfänger-Themen 6
berserkerdq2 Zwei Klassen Erben von der Klasse A, die eine Klasse kann ich an Methoden übergeben, die als Parameter A haben, die andere nicht? Java Basics - Anfänger-Themen 3
Jambolo Methode, welche die 3 letzten Parameter Werte speichert Java Basics - Anfänger-Themen 20
L Beim Java Programmstart, mehrere Parameter über die Kommandozeile übergeben Java Basics - Anfänger-Themen 9
M Interface als Parameter einer Klasse Java Basics - Anfänger-Themen 8
R Eigenschaft über Parameter auslesen und ändern Java Basics - Anfänger-Themen 15
P Eclipse Karate Framework API Test . Unexpected Error: the trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 1
X Default Parameter Java Basics - Anfänger-Themen 20
J Interface methode aufrufen (interface parameter) Java Basics - Anfänger-Themen 7
KogoroMori21 Variable im Parameter und Ohne Java Basics - Anfänger-Themen 5
J Bestimmte parameter aus Jsonfile auslesen Java Basics - Anfänger-Themen 15
I JAX-RS Mehrere Parameter in Query Java Basics - Anfänger-Themen 3
H Warum kann man keine Parameter in die main-Methode packen? Java Basics - Anfänger-Themen 4
B Konstruktor mit Array als Parameter Java Basics - Anfänger-Themen 3
D Best Practice Parameter int vs byte Java Basics - Anfänger-Themen 16
L Methode implementieren, Parameter die übergeben werden sind final Java Basics - Anfänger-Themen 4
L Wie greife ich in der Subklasse auf die Parameter einer Methode der Superklasse zu ? Java Basics - Anfänger-Themen 15
C Methoden-Parameter ist Interface Java Basics - Anfänger-Themen 5
J Apache Poi - createCell() Methode akzeptiert keinen Index aus for-schleife als Parameter Java Basics - Anfänger-Themen 4
P Parameter auf Datenformat überprüfen Java Basics - Anfänger-Themen 5
S Hamster Simulator rechnen lernen Parameter int Java Basics - Anfänger-Themen 6
Curtis_MC Parameter-Übergabe bei Klassen und Methoden Java Basics - Anfänger-Themen 12
C Java Methoden "Parameter" Problem Java Basics - Anfänger-Themen 16
W Parameter solange addieren bis 13 auftaucht Java Basics - Anfänger-Themen 11
L OOP Parameter mit der Draw-Methode übergeben Java Basics - Anfänger-Themen 11
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
L Methoden Übergabe von Parameter Java Basics - Anfänger-Themen 3
R Zu viele leere Parameter Java Basics - Anfänger-Themen 8
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 2
H Frage zu Parameter einer Methode Java Basics - Anfänger-Themen 3
B Klassen Array Parameter im Konstruktor? Java Basics - Anfänger-Themen 4
V Unbekannte Parameter Java Basics - Anfänger-Themen 1
J Input/Output Input als Parameter an Methoden übergeben Java Basics - Anfänger-Themen 23
B CSV einlesen - Parameter a) encoding b) delimiter Java Basics - Anfänger-Themen 7
U Mehrfacheingabe auf bestimmte Parameter prüfen Java Basics - Anfänger-Themen 8
A festgelegte Parameter Java Basics - Anfänger-Themen 11
PaperHat Methoden als Parameter anderer Methode verwenden Java Basics - Anfänger-Themen 11
D Interface Final für Parameter in überschriebenen Methoden? Java Basics - Anfänger-Themen 3
P Variablen Optionaler Parameter auf der Kommandozeile Java Basics - Anfänger-Themen 12
S Variable Parameter Java Basics - Anfänger-Themen 5
L Variablen Parameter bekommen Java Basics - Anfänger-Themen 13
M Methode mit Array als Parameter an Main übergeben Java Basics - Anfänger-Themen 1
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 7
A Aufruf von Konstruktor , obwohl 2 Parameter weggelassen werden Java Basics - Anfänger-Themen 0
B Webservice -> alle parameter bekommen von form Java Basics - Anfänger-Themen 2
K Klassenmethode mit übergebenen Parameter speichern Java Basics - Anfänger-Themen 7
I BigDecimal als Parameter verwenden Java Basics - Anfänger-Themen 3
J Parameter in main verwenden Java Basics - Anfänger-Themen 3
J Programm was üer Runtime.getRuntime gestartet wird erkennt String Parameter nicht Java Basics - Anfänger-Themen 0
G Int-Array im Konstruktor Parameter Java Basics - Anfänger-Themen 37
T Parameter das übergeben wurde ändern? Java Basics - Anfänger-Themen 1
D Anfänger-Fragen(Parameter einer Methode) Java Basics - Anfänger-Themen 7
P Operatoren Parameter nicht auf null geprüft? Java Basics - Anfänger-Themen 16
D Name eines JMenue als Parameter übergeben Java Basics - Anfänger-Themen 20
K Dynamischen Supplier für Parameter Java Basics - Anfänger-Themen 12
C Methoden Welche JSoup Methoden Und Parameter für diese HTML Tags Java Basics - Anfänger-Themen 4
A Die Werte zur Berechnung müssen als Parameter übergeben werden? Java Basics - Anfänger-Themen 7
H Klassen Konstruktor Parameter als Instanzvariablen zwischen speichern... Java Basics - Anfänger-Themen 11
W Methoden Methode ohne Parameter auf Instanz eines Objekts aufrufen? Java Basics - Anfänger-Themen 14
M Methode mit Parameter Java Basics - Anfänger-Themen 4
G Objektübergabe durch Parameter Java Basics - Anfänger-Themen 3
J Erste Schritte catch Exeption Parameter Java Basics - Anfänger-Themen 7
A Erste Schritte Methoden mit Parameter Java Basics - Anfänger-Themen 2
D Statische Objekte mit variablem Parameter Java Basics - Anfänger-Themen 1
N Klassen Klassen zwingende Parameter mitteilen Java Basics - Anfänger-Themen 4
L Methoden Methode Parameter vertauschen? Java Basics - Anfänger-Themen 3
C Auswertung Ausdruck mit Punknotation + Objekt als Parameter Java Basics - Anfänger-Themen 3
A Methoden Parameter optionalisieren möglich? - Wie? Java Basics - Anfänger-Themen 19
N Beliebig viele parameter Java Basics - Anfänger-Themen 3
F Methoden: Referenzvariable als Parameter Java Basics - Anfänger-Themen 4
J HttpGet Parameter mitgeben Java Basics - Anfänger-Themen 5
S Generische Methode soll Objekte als Parameter erlauben die bestimmtes Interface implementieren^ Java Basics - Anfänger-Themen 9
T Klasse von erfahren wenn Obertyp Parameter ist Java Basics - Anfänger-Themen 6
J Klassen Fehler mit Parameter des Konstruktors bei einer Objekterzeugung Java Basics - Anfänger-Themen 5
V Parameter in synchronized-Blöcken verstehen Java Basics - Anfänger-Themen 2
M Klasse als Parameter übergeben Java Basics - Anfänger-Themen 7
S Methoden eine Instanz einer eigenen Klasse als parameter übergeben Java Basics - Anfänger-Themen 9
T unterschiedlich viele parameter übergeben Java Basics - Anfänger-Themen 5
V Methoden key value Parameter Java Basics - Anfänger-Themen 11
J Drucker parameter ändern Java Basics - Anfänger-Themen 9
F trustAnchors parameter must be non-empty Java Basics - Anfänger-Themen 0
O Basisklassen als Methoden-Parameter ähnlich, wie in C++ ? Java Basics - Anfänger-Themen 6
D GregorianCalendar als Parameter Java Basics - Anfänger-Themen 2
M Parameter von Konstruktor, der Superklassen-Konstruktor aufruft Java Basics - Anfänger-Themen 2
E Problem beim Übergeben von Parameter an Methode Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben