InputStream FTP

JensMander

Bekanntes Mitglied
Hallo Forum,
ich habe eine Funktion geschrieben von der ich einen Rückgabewert erwarte, doch leider bekomme ich immer "null". ICh weiß auch das es daran liegt, das ihr ein Wert innerhalb eines Blocks zugewiesen wird, doch wie bekomme ich das ganze umgangen?
Code:
public static InputStream  ftpdownload (String datei, String ftpip) {
		int reply;
		InputStream aktuell = null;
		System.out.println(dateinameaktuell);
		try{
			String server=ftpip;
			String username="hugo";
			String password="*****";
			FTPClient ftp = new FTPClient();
		    ftp.connect(server);
		    ftp.login(username, password);
		    ftp.enterLocalPassiveMode();
		    aktuell = ftp.retrieveFileStream(datei);
		    
		}
			catch(IOException exception) {
		        System.out.println("Error : "+exception);
		    };
		    return(aktuell);
		}


vielen dank für eure HIlfe
Jens
 
Zuletzt bearbeitet von einem Moderator:

JensMander

Bekanntes Mitglied
Wenn ich nun diese Funktion jedoch aufrufe, bekomme ich ein null zurück:

Hier der Code mit dem ich die Funktion nutze:

Java:
System.out.println("vor der Funktion:" +aktuell);
			aktuell = ftpdownload(dateinameaktuell,wetterpfadaktuell);
			System.out.println("Aktuell:"+aktuell);
			try
			{
				BufferedReader reader1 = null;
				reader1 = new BufferedReader(new InputStreamReader(aktuell));
				System.out.println("LINE:"+reader1.readLine());
			}
			catch(FileNotFoundException e)
			{
				System.err.println("Datei wurde nicht gefunden");
			}
			catch(IOException e)
			{
				System.err.println("Lesefehler!");
			};

"LINE:"+reader1.readLine() ergibt LINE: null
 
Zuletzt bearbeitet:
S

SlaterB

Gast
> System.out.println("LINE:"+reader1.readLine());
beschäftigt sich mit reader1, warum sollte das was mit dem Rückgabwert aktuell von ftpdownload() zu tun haben?
weil reader1 von aktuell abhängt? nicht ausgeschlossen, aber solches Um-die-Ecke-denken solltest du nur machen, wenn das auch wirklich gut geht,
wäre es nicht viel einleuchtender, die Variable aktuell direkt nach dem Aufruf der Methode auszugeben?!

wenn diese eine Datei != null zurückgibt, kann der BufferedReader daraus immer noch null lesen (= nix drin in der Datei)

-------------

verwende bitte übrigens JAVA-Tags statt CODE, mit 66 Postings muss das doch zu lernen sein?
 
Zuletzt bearbeitet von einem Moderator:

JensMander

Bekanntes Mitglied
die Datei hat ja zu 100% Inhalt und wenn ich folgendes mache:

Java:
public static InputStream  ftpdownload (String dateinameaktuell, String ftpip) {
		int reply;
		InputStream aktuell = null;
		try{
			String server=ftpip;
			String username="hugo";
			String password="*******";
			FTPClient ftp = new FTPClient();
		    ftp.connect(server);
		    ftp.login(username, password);
		    ftp.enterLocalPassiveMode();
		    aktuell = ftp.retrieveFileStream("text.txt");
                    try
		{
			BufferedReader reader1 = null;
			reader1 = new BufferedReader(new InputStreamReader(aktuell));
			System.out.println("LINE:"+reader1.readLine());
		}
		catch(FileNotFoundException e)
		{
			System.err.println("Datei wurde nicht gefunden");
		}
		catch(IOException e)
		{
			System.err.println("Lesefehler!");
		};

		}
			catch(IOException exception) {
		        System.out.println("Error : "+exception);
		    };
		    return(aktuell);
		}

dann bekomme ich ja den Inhalt ausgegeben.
nur beim übergeben eben nicht, wenn ich die Funktion aufrufe halt einfach nicht.
Ich muss aber zwingend zwei Dateien aneinander hängen, wenn ich dieses mit zwei lokal vorhandenen Dateien mache funktioniert das auch, nur eben aktuell nicht mit der Version lokal+ftp-datei.
 
Zuletzt bearbeitet:
S

SlaterB

Gast
immer noch keine JAVA-Tags?
falls du aktuell innerhalb der Methode ftpdownload() ausliest, dann ist der Stream danach immer noch nicht null, aber vielleicht leer,
das würde zum null-Lesen nach der Methode passen, aber im ersten Code hast du ja nicht ein solches Lesen innerhalb von ftpdownload()

bist du dir da ganz sicher mit den geposteten und ausprobierten Varianten?
vielleicht kommt es auch zu Exceptions, Ausgaben werden übersprungen und du vergleichst verschiedene Methoden-Ergebnisse?
ansonsten sind für mich keine Fehler erkennbar,
java-technisch sollte es ganz sicher keinen Unterschied machen ob in oder nach der Methode ausgelesen wird

hier noch eine neue Testvariante:
schreibe direkt nach
> aktuell = ftp.retrieveFileStream("text.txt");
als neue Zeile
System.out.println("Aufruf 1, aktuell ist: "+aktuell.hashCode()+", "+aktuell.available());
sowie dassselbe an andere Stellen, z.B. kurz vor Ende der Methode ftpdownload(), direkt nach dem Aufruf, vor der "LINE:"-Ausgabe usw.,
falls du Unterscheidung brauchst, dann 'Aufruf 1' in 2, 3, 4 usw. ändern,

was liefert die available()-Methode? mit Pech immer 0 auch wenn danach Lesen möglich ist, dann bringt dieser Test wenig
 
S

SlaterB

Gast
ich glaube dass du die Ausgaben eher falsch interpretierst, kann dir aber so übers Forum keine genaueren Debug-Hinweise geben,
und auch sonst nix weiter,

wenn du mir per PM die FTP-Logindaten gibst (evtl. separater Test-Zugang), kann ich das ganze vielleicht noch selber testen
 

JensMander

Bekanntes Mitglied
das darf ich leider gottes nicht, aber ich habe gerade ein anderes (aus meiner sicht merkwürdiges) ereignis beobachtet:

aktuell läuft mein Programm in etwa so ab

public static void main(String[] args) {
x.hauptprogramm();
}

class.x{
funktion ftp(){}
funktion hauptprogramm(){
aktuell = ftp();

}
}



wenn ich das so ausführe passiert bereits geschildertes


ändere ich das aber nun und mache :


public static void main(String[] args) {
aktuell = ftp();
x.hauptprogramm();
}

class.x{
funktion ftp(){}
funktion hauptprogramm(){
aktuell = ftp();

}


dann funktioniert das ganze.
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Warum wird hier nur etwas in eine txt Datei geschrieben und nicht in alle drei (InputStream/OutputStream/Reader/Writer) Java Basics - Anfänger-Themen 1
I Dateigröße von einem InputStream oder byte[] bekommen Java Basics - Anfänger-Themen 2
berserkerdq2 inputstream und bufferedwirter /outputstream und bufferedwriter Java Basics - Anfänger-Themen 9
T Bluetooth, Inputstream Java Basics - Anfänger-Themen 0
I InputStream beim zweiten Mal fehlerhaft Java Basics - Anfänger-Themen 10
B Inputstream in file schreiben? Java Basics - Anfänger-Themen 23
B InputStream / OutputStream / PipedOutputStream und managedExecutorService Java Basics - Anfänger-Themen 3
B java.io.OutputStream zu java.io.InputStream konvertieren Java Basics - Anfänger-Themen 18
B Hilfe bei InputStream To File Java Basics - Anfänger-Themen 22
B InputStream (PDF) nach Image (PNG / JPG) konvertieren? Java Basics - Anfänger-Themen 2
B Konvertieren: Outputstream zu Inputstream Java Basics - Anfänger-Themen 13
J Was genau macht die Methode close() im InputStream? Java Basics - Anfänger-Themen 5
E InputStream im Servlet wirft Exception Java Basics - Anfänger-Themen 5
D InputStream parsen und als Bilddatei abspeichern Java Basics - Anfänger-Themen 1
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
T Datentypen InputStream to list of Int (or similar) Java Basics - Anfänger-Themen 4
P bytes aus einem InputStream zählen Java Basics - Anfänger-Themen 2
P InputStream eines Musik-Streams abspielen Java Basics - Anfänger-Themen 2
I Resize Image - Einlesen von InputStream Java Basics - Anfänger-Themen 3
T Input/Output Exception bei einem InputStream Java Basics - Anfänger-Themen 2
W ProcessBuilder InputStream in Array speichern Java Basics - Anfänger-Themen 3
K InputStream erstellen Java Basics - Anfänger-Themen 4
B Input/Output Data / Buffer / File Outstream Inputstream Java Basics - Anfänger-Themen 2
L Webservice soll InputStream übergeben bekommen Java Basics - Anfänger-Themen 7
S Eigener InputStream, Hilfe bei read-Methode Java Basics - Anfänger-Themen 6
C InputStream Java Basics - Anfänger-Themen 2
O Input/Output Fragen zum InputStream Java Basics - Anfänger-Themen 7
E Input/Output Relativer Bild-Pfad für InputStream Java Basics - Anfänger-Themen 5
G Frage zu InputStream? Java Basics - Anfänger-Themen 11
E Socket InputStream "terminiert" nicht Java Basics - Anfänger-Themen 4
E Input/Output Inputstream während der Laufzeit füllen Java Basics - Anfänger-Themen 2
A Frage zu Beispiel eines Dekorierers von InputStream Java Basics - Anfänger-Themen 4
B Input/Output InputStream (JSch) in OutputStream (Blob) überführen Java Basics - Anfänger-Themen 8
P Input/Output InputStream Listener? Java Basics - Anfänger-Themen 7
M Eigener InputStream will nicht mit BufferedReader Java Basics - Anfänger-Themen 3
S Input/Output Neuen InputStream System.in setzen Java Basics - Anfänger-Themen 11
A InputStream gibt nur jede 2te Zeile aus Java Basics - Anfänger-Themen 7
brunothg Inputstream zu Filechannel Java Basics - Anfänger-Themen 6
K StringWriter/String nach InputStream konvertieren Java Basics - Anfänger-Themen 3
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
A Problem mit InputStream Java Basics - Anfänger-Themen 4
bastiann Kann man Inputstream nur auf ein Zeichen anwenden? Java Basics - Anfänger-Themen 5
U Inputstream.read()/readLine() blockiert immer Java Basics - Anfänger-Themen 18
S Problem mit url, inputStream und bytes beim Quellcode laden. Java Basics - Anfänger-Themen 6
G Kompletten InputStream der Kommandokonsole ausgeben Java Basics - Anfänger-Themen 8
G InputStream aufrufen, ändern und zurück geben Java Basics - Anfänger-Themen 2
W Zeichen ersetzen im InputStream Java Basics - Anfänger-Themen 3
N String vom InputStream in TextArea übertragen Java Basics - Anfänger-Themen 6
A Frage zu Puffergröße bei InputStream Java Basics - Anfänger-Themen 9
G in einem inputstream auf " " abfragen? Java Basics - Anfänger-Themen 3
M Datei speichern mittels InputStream Java Basics - Anfänger-Themen 13
P InputStream in Byte-Array speichern Java Basics - Anfänger-Themen 2
G String in InputStream umwandeln? Java Basics - Anfänger-Themen 8
M Auslesen eines InputStream Java Basics - Anfänger-Themen 4
M Problem mit InputStream Java Basics - Anfänger-Themen 7
S Probleme mit InputStream- Rückgabe Java Basics - Anfänger-Themen 4
I InputStream von Konsole abfangen Java Basics - Anfänger-Themen 6
G InputStream im finally-Block schließen Java Basics - Anfänger-Themen 7
K InputStream? Java Basics - Anfänger-Themen 3
S Sockets and InputStream Java Basics - Anfänger-Themen 2
M InputStream einer Socketverbindung funktioniert nicht Java Basics - Anfänger-Themen 19
M Byte InputStream zu Zeichenformat Unicode bzw String konvert Java Basics - Anfänger-Themen 5
R InputStream erstellen, der aus String liest Java Basics - Anfänger-Themen 8
R ENTER in InputStream nicht lesen Java Basics - Anfänger-Themen 4
G InputStream auslesen und zurückschreiben Java Basics - Anfänger-Themen 9
R BufferedReader <-> InputStream Java Basics - Anfänger-Themen 3
R Suche geeignetes InputStream Java Basics - Anfänger-Themen 2
D InputStream -> Image Java Basics - Anfänger-Themen 6
M String zu InputStream/InputSource Java Basics - Anfänger-Themen 2
S Problem mit InputStream / flush() / BufferedReader Java Basics - Anfänger-Themen 19
C Aus ein Image-Objekt einen InputStream generieren? Java Basics - Anfänger-Themen 6
J InputStream in String umwandeln Java Basics - Anfänger-Themen 5
J InputStream ist null Java Basics - Anfänger-Themen 7
P InputStream, BufferedString Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben