# HTML Seite laden



## intA (8. Nov 2010)

Hallo zusammen,

ich lade eine webseite wie folgt:
(try catch weggelassen)


```
URLConnection con = new URL(url).openConnection();
BufferedReader br = new BufferedReader(new InputStreamReader(con.getInputStream()));
BufferedWriter bw = new BufferedWriter(new FileWriter(file));

while (br.ready()) {
	 bw.write(br.readLine());
	bw.newLine();
}

closen...
return file;
```

das klappt zwar auch recht oft, allerdings wird die seite manchmal nicht vollständig runtergeladen (oder einfach nicht komplett ins file geschrieben) ?
Bin da ziemlich ratlos was ich da tun kann. Kann mir jemand helfen?


----------



## Der Müde Joe (8. Nov 2010)

Vor den Closen geflusht? (Je nach dem ob du java 6 benutzt oder nicht)

EDIT:
und die schleife sieht normalerweise so aus:

```
while ((thisLine = br.readLine()) != null) {
```


----------



## intA (8. Nov 2010)

Hi Müder Joe ;-)

danke für deine Tipps, leider löst das das Problem aber noch nicht :/
Eigenartige Sache...


----------



## JensArpe (8. Nov 2010)

Vielleicht gibts am Ende kein newLine Zeichen mehr?


----------



## darkeye2 (8. Nov 2010)

probier mal die Seiten so zu laden:


```
private String getStrFromUrl(String surl){
		final String userAgent = "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12";
		try {
			URL url = new URL(surl);
	        URLConnection conn = url.openConnection();
	        conn.addRequestProperty("User-Agent", userAgent);
	        
	        BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
	         String str;
	         StringBuilder builder = new StringBuilder(1024);
	         while ((str = in.readLine()) != null) {
	            builder.append(str);
	            builder.append("\n");
	         }
	         in.close();
	         return builder.toString();
			} catch (MalformedURLException e) 
			{	System.out.println(e.getMessage());
			} 
			catch (IOException e) 
			{	System.out.println(e.getMessage());
			} 
	}
```

EDIT: ist net perfekt, wie mein nachposter sagt bau am besten einen StringBuilder ein...
EDIT2: ist jetzt eingebaut, also code kann direkt verwendet werden


----------



## Schandro (8. Nov 2010)

```
str = new String();
            while ((str1 = in.readLine()) != null) {
                str = str + str1;
            }
```
Ist von der Performance her grauenvoll. Benutz einen StringBuilder stattdessen.


----------



## intA (8. Nov 2010)

Danke für die schnelle Hilfe!


----------

