hallo,
habe vor einiger zeit eine klasse geschrieben, die mir daten (binär) von einer url lädt;
heute versuche ich die klasse in mein jetziges projekt einzubinden und siehe da... exception!
ich versuche die dateigröße so auszulesen - habs in ne eigene funktion rausgepackt...
die originale funktion sieht so aus:
könnte mir jemand mitteilen, was ich falsch mache???
PS: meine test-klasse:
EDIT:
hab im forum schon gesucht -> kleine info am rande... das laden der url als TEXT funktioniert, allerdings muss ich dort die dateigrösse nicht wissen...
habe vor einiger zeit eine klasse geschrieben, die mir daten (binär) von einer url lädt;
heute versuche ich die klasse in mein jetziges projekt einzubinden und siehe da... exception!
ich versuche die dateigröße so auszulesen - habs in ne eigene funktion rausgepackt...
Java:
public static int getFileSize(String srcUrl) {
URLConnection conn;
int size;
try {
URL url = new URL(srcUrl);
conn = url.openConnection();
size = conn.getContentLength();
conn.getInputStream().close();
if (size < 0)
return -1;
else
return size;
} catch (Exception e) {
e.printStackTrace();
}
return -1;
}
die originale funktion sieht so aus:
Java:
public static final byte[] getByteFromUrl(String srcUrl) {
try {
URL page = new URL(srcUrl);
URLConnection conn = (HttpURLConnection) page.openConnection();
InputStream fr = conn.getInputStream();
int total = conn.getContentLength();
byte[] buffer = new byte[total];
fr.read(buffer); // load whole file into buffer
fr.close();
return buffer;
} catch (MalformedURLException mue) {
System.out.println("Bad URL: " + srcUrl);
} catch (IOException ioe) {
ioe.printStackTrace();
// System.out.println("IO Error: " + ioe.getMessage());
}
return null;
}
könnte mir jemand mitteilen, was ich falsch mache???
PS: meine test-klasse:
Java:
public class Test {
private static String page = "http://www.java-forum.org";
public static void main(String[] args) {
System.out.println(DataCollector.getFileSize(page));
String data = new String(DataCollector.getByteFromUrl(page));
System.out.println(data);
}
}
EDIT:
hab im forum schon gesucht -> kleine info am rande... das laden der url als TEXT funktioniert, allerdings muss ich dort die dateigrösse nicht wissen...
Java:
public static final String getText(String srcUrl) {
String text = "";
try {
URL url = new URL(srcUrl);
InputStream is = url.openConnection().getInputStream();
BufferedReader reader = new BufferedReader(
new InputStreamReader(is));
try {
String line = null;
while ((line = reader.readLine()) != null) {
text += line + "\n\r";
}
} finally {
reader.close();
}
} catch (MalformedURLException mue) {
System.out.println("Bad URL: " + srcUrl);
} catch (IOException ioe) {
ioe.printStackTrace();
// System.out.println("IO Error: " + ioe.getMessage());
}
return text;
}
Zuletzt bearbeitet: