# FTP-Zugriff auf Textdatei



## Trendsoundz (25. Okt 2010)

So ich versuche mein Problem bestens zu beschreiben.Ich habe ein kleines Programm programmiert,dass aus einer Textdatei Zeile für Zeile liest und die Zeilen dann in einem Applet anzeigt,sobald ich einen bestimmten Button drücke.Ich habe mit dem FileReader gearbeitet.

Nun wollte ich das ganze schwieriger gestalten und bin kläglich gescheitert
Ich hatte vor die Textdatei auf einem FTP-Server abzulegen und von dort das ganze zu machen(auslesen und im Applet anzeigen lassen),da die Datei davor nur lokal gespeichert war.

Ich hab mich schon im Internet schlau gemacht,überallt ist von sogenannten FTPClients die Rede.Jedoch hab ich damit 0-Erfahrung;(

Hat jemand ein Beispielprogramm um mein Problem zu lösen oder gegebenenfalls eine Idee?
Wäre dafür sehr dankbar:toll:


----------



## XHelp (25. Okt 2010)

Unter "java applet ftp" liefert google doch ganz brauchbare Ergebnisse (von dem Sinn der eigentlichen Idee abgesehen)


----------



## Trendsoundz (25. Okt 2010)

Naja ausser vielen kompletten FTP-Programmen liefert die Suche nicht viel.Ausserdem ist auf einer Seite von "runterladen einer datei" die Rede,aber ich möchte ja aus einer datei lesen und den inhalt im applet anzeigen lassen.
Ich benötige ja Beispielcode,vllt hab ich mich mit "Beispielprogramm" schlecht ausgedrückt.


----------



## XHelp (25. Okt 2010)

Um eine Datei zu lesen, muss du die Datei runterladen.
Und den Code kannst du dir eben von Beispieln angucken. Da wird mit sicherheit gezeigt, wie du eine Datei runterlädst.


----------



## Trendsoundz (25. Okt 2010)

Das bedeutet ich kann nicht ohne runterladen auf die Datei zugreifen und die einzelnen Zeilen auslesen?Es muss doch möglich sein,den Inhalt der Datei zu lesen und in einem Label auszugeben....


----------



## XHelp (25. Okt 2010)

Naja, wenn du dich eingeloggt hast und die Datei angefordert hast, schickt dir der FTP Server den Inhalt der Datei per Socket...
Aber was ist denn deine Definition von "runterladen"? Wie willst du sonst den Inhalt der Datei lesen, ohne den Inhalt zu lesen?


----------



## Trendsoundz (25. Okt 2010)

Es geht darum: In die Textdatei hab ich eine Tracklist geschrieben,nun will ich eben das Programm an Freunde weitergeben,die das Programm einfach nur öffnen und ein Button drücken müssen und *schwups* erscheint in einem Label im Programm die Trackliste.Und somit müsste ich die Trackliste auf dem FTP-Server nur aktualisieren....Naja unter "runterladen" versteh ich eben,das die Textdatei auf dem Computer gespeichert wird...


----------



## XHelp (25. Okt 2010)

Was du mit den empfangenen Daten machst (speichern, löschen, ausdrucken und verbrennen) ist im Endeffekt egal. Aber den Inhalt musst du schon ziehen.
Dann hoste die Datei doch bei irgendeinem WebHosting (gibts ja genügend kostenlose). Dann musst du auch nicht das Kennwort im Applet gespeichert halten


----------



## Trendsoundz (3. Nov 2010)

Hey XHelp hat nun alles so geklappt wie du gesagt hast,nun hätte ich gerne noch eine Frage.
Nachdem ich die Datei heruntergeladen habe möchte ich sie natürlich auch wieder löschen,jedoch funktioniert das nicht so wie geplant.
Bei einem Klick auf einen Button,soll mein Frame geschlossen und 3 Textdateien gelöscht werden.Jedoch werden sie erst gelöscht wenn ich ein zweites mal das Frame aufrufe und nur den erstellten Schließen Button drücke,aber nicht wenn ich davor die Textdateien von dem FTP-Server geladen habe und dann den Schließen Button drücke.Bin am verzweifeln=(


----------



## ARadauer (3. Nov 2010)

> Bin am verzweifeln


tja poste mal code. vermutlich schließt du beim lesen den stream nicht..


----------



## Trendsoundz (3. Nov 2010)

```
public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals("Schließen!"))
		{
		 File f1 = new File("HouseElectro.txt");
		 f1.delete();
		 
		 File f2 = new File("HipHopRnB.txt");
		 f2.delete();
		 
		 File f3 = new File("Pop.txt");
		 f3.delete();
		
		}
		
		
		
		
		
		
		
		if(hec.isSelected()){
			
			
		
			if(e.getActionCommand().equals("Trend it!"))
			{
				
				try{
					FTPClient client = new FTPClient();
				    FileOutputStream fis = null;

				    client.connect(server);
				    client.login(username,passwort);

				    String filename = "HouseElectro.txt";
				    fis = new FileOutputStream(filename);
				    client.retrieveFile(filename, fis);
				    client.logout();
				    fis.close();
				
								
					  BufferedReader br =
					  new BufferedReader(new FileReader(filename));
					


					String[] zeile = new String[7];
					for(int i = 0;i<zeile.length;i++)
					{
						zeile[i]= br.readLine();
						
					}
					soundz1.setText(zeile[0]);
					soundz2.setText(zeile[1]);
					soundz3.setText(zeile[2]);
					soundz4.setText(zeile[3]);
					soundz5.setText(zeile[4]);
					soundz6.setText(zeile[5]);
					soundz7.setText(zeile[6]); 
					
					
					
						
					}catch(IOException ioe){
					ioe.printStackTrace(); 
					}
					
					

				
			}
			
			
			
			
			
		
		}
		
		 if(hrc.isSelected())
			{
					 
			 if(e.getActionCommand().equals("Trend it!"))
				{
				 
				 try{
					 
					 FTPClient client = new FTPClient();
					    FileOutputStream fis = null;

					  client.connect(server);
				          client.login(username,passwort);

					    String filename = "HipHopRnB.txt";
					    fis = new FileOutputStream(filename);
					    client.retrieveFile(filename, fis);
					    client.logout();
					    fis.close();
					 
					 
						BufferedReader br =
						  new BufferedReader(new FileReader(filename));
						
						String[] zeile = new String[7];
						for(int i = 0;i<zeile.length;i++)
						{
							zeile[i]= br.readLine();
							
						}
						soundz1.setText(zeile[0]);
						soundz2.setText(zeile[1]);
						soundz3.setText(zeile[2]);
						soundz4.setText(zeile[3]);
						soundz5.setText(zeile[4]);
						soundz6.setText(zeile[5]);
						soundz7.setText(zeile[6]);
											
						}catch(IOException ioe){
						ioe.printStackTrace();
						}
					
				}
			
			 
			 
			 
					 
			}
		 
		 if(pc.isSelected())
			{
					 
			 if(e.getActionCommand().equals("Trend it!"))
				{
				 
				 try{
					 
					 FTPClient client = new FTPClient();
					    FileOutputStream fis = null;

					     client.connect(server);
				             client.login(username,passwort);

					    String filename = "Pop.txt";
					    fis = new FileOutputStream(filename);
					    client.retrieveFile(filename, fis);
					    client.logout();
					    fis.close();
					    
					    
					    
					 
						BufferedReader br =
						  new BufferedReader(new FileReader(filename));
						
						String[] zeile = new String[7];
						for(int i = 0;i<zeile.length;i++)
						{
							zeile[i]= br.readLine();
							
						}
						soundz1.setText(zeile[0]);
						soundz2.setText(zeile[1]);
						soundz3.setText(zeile[2]);
						soundz4.setText(zeile[3]);
						soundz5.setText(zeile[4]);
						soundz6.setText(zeile[5]);
						soundz7.setText(zeile[6]);
						
						
					
						}catch(IOException ioe){
						ioe.printStackTrace();
						}
						
							
				 
				}
			 
			 			 
			}
		 
		 
		
	}
```

So bitteschön


----------



## XHelp (3. Nov 2010)

Versuch mal deine BufferedReader nach dem einlesen zu schließen


----------



## ARadauer (4. Nov 2010)

seh ich auchs so... br wird nirgends geschlossen...


----------



## Trendsoundz (8. Nov 2010)

Danke hat geklappt=)


----------

