В моем приложении я пытаюсь загрузить файл с моего сайта, но у меня возникло несколько проблем с ним.Во-первых, я не могу понять, как правильно объявить URL.Во-вторых, когда я запускаю приложение, оно падает, когда я говорю соединению получить InputStream.Я понятия не имею, что я делаю неправильно.Большую часть дня я искал в Интернете и перепробовал множество методов, чтобы решить проблему с URL, но безуспешно.
Мне бы очень хотелось узнать, что я делаю неправильно, поэтому любая помощь предоставленабудет принята с благодарностью.
package shc_BalloonSat.namespace;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLEncoder;
import org.apache.http.util.ByteArrayBuffer;
import android.util.Log;
public class dl_viewKML
{
String file_path = "";
String file_url;
String file_name;
void downloadFile()
{
try
{
String file_name = "data.kml";
//URL url = new URL("http://space.uah.edu");
String encodedURL = "http:////"+URLEncoder.encode("www.wktechnologies.com/shc_android_app/", "UTF-8");
URL url = new URL(encodedURL);
File file = new File(url + "/" + file_name);
long startTime = System.currentTimeMillis();
Log.d("SHC BalloonSat", "Download beginning: ");
Log.d("SHC BalloonSat", "Download url: " + url);
Log.d("SHC BalloonSat", "Downloaded file name: " + file_name);
// Open a connection to the specified URL
URLConnection conn = url.openConnection();
// Define InputStreams to read from the URLConnection.
InputStream is = conn.getInputStream();//crashes here
BufferedInputStream bis = new BufferedInputStream(is);
// Read bytes to the Buffer until there is nothing more to read(-1).
ByteArrayBuffer baf = new ByteArrayBuffer(50);
int current = 0;
while ((current = bis.read()) != -1)
{
baf.append((byte) current);
}
// Convert the Bytes read to a String.
FileOutputStream fos = new FileOutputStream(file);
fos.write(baf.toByteArray());
fos.close();
Log.d("SHC BalloonSat", "Download ready in: " + ((System.currentTimeMillis() - startTime) / 1000) + " secs.");
}
catch (IOException e)
{
Log.e("log_tag", "Error: " + e.toString());
}
}
}