# RSS-Feed aus ini File



## sup? (14. Apr 2011)

Hi Leute, 
hab mal wieder ne Aufgabe, basierend auf den andren Codes die ich bisher so geschickt habe.
Ich möchte aus einer .ini-Datei eine RSS-Feed Addresse(SPIEGEL ONLINE - Schlagzeilen) auslesen und anschließend den RSS-Feed auslesen und in eine Txt-Datei schreiben.
Leider wird mir n Fehler angezeigt:


```
Exception in thread "main" java.net.MalformedURLException: no protocol: SPIEGEL ONLINE - Schlagzeilen
SPIEGEL ONLINE
Champions-League-Halbfinale: Schalke chancenlos? Schalke riesengroß!
Fukushima-Opfer: Japan plant Gartenstadt für Umgesiedelte
Milliardenplatzierung: Investoren reißen sich um Commerzbank-Papiere
Grün-rotes Baden-Württemberg: Kater nach der Schampuswahl
Nato-Konferenz in Berlin: Westerwelle verwirrt Freund und Feind
Frührenten-Berater: Ausmusterer vom Dienst
Maroder US-Haushalt: Obama wirbt für Schmuse-Sparkurs
Heimsieg gegen Inter: Schalke bejubelt Halbfinaleinzug
Haushaltsrede: Obama kündigt drastisches Sparprogramm an
Libyen-Konferenz in Katar: Anti-Gaddafi-Allianz tritt auf der Stelle
Radioaktive Trümmer: Tepco räumt Atomschrott weg
Krieg in Libyen: Tödlicher Alltag in einer belagerten Stadt 
Doppelmord von Bodenfelde: Keine Regung, nur Grauen
Union vor Zerreißprobe: AKW-Dinos ziehen ins letzte Gefecht
Plagiatsaffäre: Uni Bayreuth darf Guttenberg-Gutachten veröffentlichen
Procter, Unilever und Co.: Wettbewerbshüter*strafen Waschmittel-Kartell ab
Wehrtechnik made in Germany: Moskau liebäugelt mit dem Leo
Britische Kultserie "Skins": Zu kaputt, um wahr zu sein
Mega-Projekt in Brasilien: Milliardär zwischen Vision und Wahnsinn
S.P.O.N. - Die Mensch-Maschine: Warum die Politik Netzsperren liebt
Gaddafi-Getreue: Deutschland weist libysche Diplomaten aus
Dickes Staatsminus: Schuldenberg wächst auf 2.000.000.000.000 Euro
Neue Herausforderung: Trainer Stanislawski verlässt St. Pauli
Mord an Schwestern: Psychiater entließen labile Mutter nach Hause
Mafiaboss-Geständnis: Geheimgespräche im begehbaren Kühlschrank
Leichenfunde von Long Island: New Yorks Fahnder jagen den Dünenkiller
Wider den Exzellenz-Kult: Es lebe das Mittelmaß!

	at java.net.URL.<init>(Unknown Source)
	at java.net.URL.<init>(Unknown Source)
	at java.net.URL.<init>(Unknown Source)
	at GetFromWeb.readUrl(GetFromWeb.java:7)
	at Application.main(Application.java:8)
```

Ein Textfile erstellt er ebenfalls ned. ???:L



Hier nun meine Klassen: 


```
public class Application {

	public static void main(String[] args) throws Exception {

			Controller.startIt();	// unwichtig	
			
			System.out.println(GetFromWeb.readUrl(readIni.getAddresse())); //edit
			
			WriteDataHTMLFile writeDataHTMLFile = new WriteDataHTMLFile();
			writeDataHTMLFile.writeDataHTMLFile("test.txt");
			writeDataHTMLFile.writeElement(GetFromWeb.readUrl(readIni.getAddresse()));
			writeDataHTMLFile.closeFile();			 
			
			
			CharCounter charCounter = new CharCounter();  //charcounter zählt die "bei"s in dem Feed
			System.out.print("Das Wort \"bei\" wird ");
            charCounter.charCount(GetFromWeb.readUrl(GetFromWeb.readUrl(readIni.getAddresse())));
            System.out.print("-mal verwendet");
	}
}
```


```
import java.io.FileInputStream;
import java.util.Properties;


public class readIni {
	
	String addresse;
	
	private static String addresse() throws Exception{
		  
		String addresse;
		Properties p = new Properties();
	    p.load(new FileInputStream("src/rssFeed.ini"));
	    addresse = p.getProperty("RSSAdresse");
	    return addresse;
	}
	public static String getAddresse() throws Exception{
		  return addresse();
	}

}
```


```
import java.net.*;
import java.util.Scanner;

public class GetFromWeb {
	
	public static String readUrl(String UrlToRead) throws Exception{
        Scanner in = new Scanner(new URL(UrlToRead).openStream());
        StringBuilder sbuilder = new StringBuilder();
        while(in.findWithinHorizon("<title>(.+?)</title>", 0) != null){
            sbuilder.append(in.match().group(1)).append(System.getProperty("line.separator"));
        }
        in.close();
        return sbuilder.toString();
    }

}
```


```
import java.util.*;
 
public class CharCounter {
    
    int counter = 0;
    
    
    
    public void charCount(String text) throws Exception{
        StringTokenizer st = new StringTokenizer(text);
        while(st.hasMoreTokens()){
            if(st.nextToken().equals("bei")) {
                counter++;
                
            }
            
        }
    System.out.print(counter); 
    }
 
}
```


```
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class WriteDataHTMLFile{
	
	File file;
	FileWriter writer;
	
	public void writeDataHTMLFile(String PathToFile) throws Exception{
		
		file = new File(PathToFile);
		
	}
	
	public void writeElement(String StringToWrite) throws Exception{

		       writer = new FileWriter(file ,true);
		       
		       writer.write(StringToWrite);
		       
		       writer.flush();
	}
	
	public void closeFile(){
		try {
		writer.close();
        } catch (IOException e) {
        e.printStackTrace();
        }
	}
	
}
```


Edit: rssFeed.ini :

```
RSSAdresse=http://www.spiegel.de/schlagzeilen/tops/index.rss
```


----------



## nrg (14. Apr 2011)

das ist schwer zu sagen, weil wir nicht wissen, was in der ini-datei steht . anscheined gibst du kein protokoll mit an. was mir noch unklar ist, ist der doppelte methodenaufruf:



> ```
> System.out.println(GetFromWeb.readUrl(GetFromWeb.readUrl(readIni.getAddresse())));
> ```



ausserdem kannst du mit properties keine ini-datei einlesen. also das geht schon aber nur solange, bis keine auf die idee kommt, da sektionen rein zu packen (was man bei inis darf - bei properties aber nicht funktionieren wird) edit: und mal abgesehn von der allgemein syntax. für ini nimmste am besten ini4j. ansonsten die datei einfach ...properties nennen, um missverständnisse vorzubeugen.


----------



## sup? (14. Apr 2011)

ja, das war schonmal ein Fehler: 
gefixt und jetzt zeigt er mir das an: 


```
SPIEGEL ONLINE - Schlagzeilen
SPIEGEL ONLINE
Champions-League-Halbfinale: Schalke chancenlos? Schalke riesengroß!
Fukushima-Opfer: Japan plant Gartenstadt für Umgesiedelte
Milliardenplatzierung: Investoren reißen sich um Commerzbank-Papiere
Grün-rotes Baden-Württemberg: Kater nach der Schampuswahl
Nato-Konferenz in Berlin: Westerwelle verwirrt Freund und Feind
Frührenten-Berater: Ausmusterer vom Dienst
Maroder US-Haushalt: Obama wirbt für Schmuse-Sparkurs
Heimsieg gegen Inter: Schalke bejubelt Halbfinaleinzug
Haushaltsrede: Obama kündigt drastisches Sparprogramm an
Libyen-Konferenz in Katar: Anti-Gaddafi-Allianz tritt auf der Stelle
Radioaktive Trümmer: Tepco räumt Atomschrott weg
Krieg in Libyen: Tödlicher Alltag in einer belagerten Stadt 
Doppelmord von Bodenfelde: Keine Regung, nur Grauen
Union vor Zerreißprobe: AKW-Dinos ziehen ins letzte Gefecht
Plagiatsaffäre: Uni Bayreuth darf Guttenberg-Gutachten veröffentlichen
Procter, Unilever und Co.: Wettbewerbshüter*strafen Waschmittel-Kartell ab
Wehrtechnik made in Germany: Moskau liebäugelt mit dem Leo
Britische Kultserie "Skins": Zu kaputt, um wahr zu sein
Mega-Projekt in Brasilien: Milliardär zwischen Vision und Wahnsinn
S.P.O.N. - Die Mensch-Maschine: Warum die Politik Netzsperren liebt
Gaddafi-Getreue: Deutschland weist libysche Diplomaten aus
Dickes Staatsminus: Schuldenberg wächst auf 2.000.000.000.000 Euro
Neue Herausforderung: Trainer Stanislawski verlässt St. Pauli
Mord an Schwestern: Psychiater entließen labile Mutter nach Hause
Mafiaboss-Geständnis: Geheimgespräche im begehbaren Kühlschrank
Leichenfunde von Long Island: New Yorks Fahnder jagen den Dünenkiller

Das Wort "bei" wird Exception in thread "main" java.net.MalformedURLException: no protocol: SPIEGEL ONLINE - Schlagzeilen
SPIEGEL ONLINE
Champions-League-Halbfinale: Schalke chancenlos? Schalke riesengroß!
Fukushima-Opfer: Japan plant Gartenstadt für Umgesiedelte
Milliardenplatzierung: Investoren reißen sich um Commerzbank-Papiere
Grün-rotes Baden-Württemberg: Kater nach der Schampuswahl
Nato-Konferenz in Berlin: Westerwelle verwirrt Freund und Feind
Frührenten-Berater: Ausmusterer vom Dienst
Maroder US-Haushalt: Obama wirbt für Schmuse-Sparkurs
Heimsieg gegen Inter: Schalke bejubelt Halbfinaleinzug
Haushaltsrede: Obama kündigt drastisches Sparprogramm an
Libyen-Konferenz in Katar: Anti-Gaddafi-Allianz tritt auf der Stelle
Radioaktive Trümmer: Tepco räumt Atomschrott weg
Krieg in Libyen: Tödlicher Alltag in einer belagerten Stadt 
Doppelmord von Bodenfelde: Keine Regung, nur Grauen
Union vor Zerreißprobe: AKW-Dinos ziehen ins letzte Gefecht
Plagiatsaffäre: Uni Bayreuth darf Guttenberg-Gutachten veröffentlichen
Procter, Unilever und Co.: Wettbewerbshüter*strafen Waschmittel-Kartell ab
Wehrtechnik made in Germany: Moskau liebäugelt mit dem Leo
Britische Kultserie "Skins": Zu kaputt, um wahr zu sein
Mega-Projekt in Brasilien: Milliardär zwischen Vision und Wahnsinn
S.P.O.N. - Die Mensch-Maschine: Warum die Politik Netzsperren liebt
Gaddafi-Getreue: Deutschland weist libysche Diplomaten aus
Dickes Staatsminus: Schuldenberg wächst auf 2.000.000.000.000 Euro
Neue Herausforderung: Trainer Stanislawski verlässt St. Pauli
Mord an Schwestern: Psychiater entließen labile Mutter nach Hause
Mafiaboss-Geständnis: Geheimgespräche im begehbaren Kühlschrank
Leichenfunde von Long Island: New Yorks Fahnder jagen den Dünenkiller

	at java.net.URL.<init>(Unknown Source)
	at java.net.URL.<init>(Unknown Source)
	at java.net.URL.<init>(Unknown Source)
	at GetFromWeb.readUrl(GetFromWeb.java:7)
	at Application.main(Application.java:18)
```


----------



## Bierhumpen (14. Apr 2011)

Im Ernst?


Ist ja nicht so als würde die Fehlermeldung dir die Zeilen angeben wo der Fehler auftritt.


----------



## sup? (14. Apr 2011)

Ich bin n absoluter Noob, kann also da noch gar nix deuten. 

Habs aber grad selber gefixt, jetzt funzt alles: 

```
public class Application {

	public static void main(String[] args) throws Exception {

			Controller.startIt();		
			
			String getFromWeb = GetFromWeb.readUrl(readIni.getAddresse());
			System.out.println(getFromWeb);
			
			WriteDataHTMLFile writeDataHTMLFile = new WriteDataHTMLFile();
			writeDataHTMLFile.writeDataHTMLFile("test.txt");
			writeDataHTMLFile.writeElement(getFromWeb);
			writeDataHTMLFile.closeFile();			 
			
			
			CharCounter charCounter = new CharCounter();
			System.out.print("Das Wort \"bei\" wird ");
            charCounter.charCount(getFromWeb);
            System.out.print("-mal verwendet");
	}
}
```


----------

