# Output Stream / Protokoll does not support output



## Manfred (7. Jan 2005)

Hi!

Bei folgendem Code kommt diese Exception:


```
public Saver(int level, ArrayList liste)
    {
        URL url = null;
        
        switch(level)
        {
        
    	case 1: url = this.getClass().getResource("level1.dat");break;
    	case 2: url = this.getClass().getResource("level2.dat");break;
    	case 3: url = this.getClass().getResource("level3.dat");break;
        }

		try
		{
			URLConnection conn = url.openConnection();
			fis1 = conn.getOutputStream();
			
		}
		catch(Exception e)
		{System.out.println(e);}
		
        this.liste=liste;
    }
```

Fehlermeldung:



> java.net.UnknownServiceException: protocol doesn't support output




mit url.getProtocol(); bekomme ich 'file' zurück, dieser unterstützt keinen Output??


Danke!


----------



## Grizzly (7. Jan 2005)

Vielleicht stimmt die Meldung ja. Auf eine "richtige" URL kann ich ja normalerweise schon schreiben, wenn sie bspw. auf das HTTP Protokoll zugreift. Ich kann also eine Internet Seite schon mit einer Daten aufrufen. Wenn es sich dabei aber um Dateien handelt, wird dies wahrscheinlich nicht möglich sein. Schon gar nicht, wenn sich diese bspw. in einer JAR Datei befinden.


----------



## Spacerat (11. Jan 2005)

In eine URL mit "file://"-Protokoll kann man nicht schreiben, da die Ziel-Datei, welche über diese abgerufen wird (REQUEST) selbst überschrieben würde. Bei einer URL mit "http://"-Protokoll wird die Ziel-Datei lediglich dazu angewiesen die übergebenen Daten (z.B. durch POST oder GET) in eine weitere Datei zu schreiben.

Möchte man nun wirklich die Datei der URL überschreiben, muß man ein URI-Objekt erstellen.

Ich bekomme diese Exception immer, wenn ich aus Eclipse heraus ein Applet starte oder debugge, welches Daten aus einer URL lesen (bzw. in eine URL schreiben) soll. Dummerweise verwendet Eclipse den AppletViewer, in welchem Applets als Anwendung laufen und damit 1. alle sonst verweigerten Rechte bekommen und 2. auch noch statt "http" "file" benutzen.


----------

