且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何从服务器上下载XML文件并将其保存在SD卡上?

更新时间:2023-09-28 10:59:28

您可以使用以下code。这对我的作品

You can use Following code. This works for me

URL url = new URL("some url");

//create the new connection

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

//set up some things on the connection

urlConnection.setRequestMethod("GET");

urlConnection.setDoOutput(true);

//and connect!

urlConnection.connect();

//set the path where we want to save the file

//in this case, going to save it on the root directory of the

//sd card.

File SDCardRoot = new File("/sdcard/"+"Some Folder Name/");

//create a new file, specifying the path, and the filename

//which we want to save the file as.

File file = new File(SDCardRoot,"some file name");

//this will be used to write the downloaded data into the file we created

FileOutputStream fileOutput = new FileOutputStream(file);

//this will be used in reading the data from the internet

InputStream inputStream = urlConnection.getInputStream();

//this is the total size of the file

int totalSize = urlConnection.getContentLength();

//variable to store total downloaded bytes

int downloadedSize = 0;

//create a buffer...

byte[] buffer = new byte[1024];

int bufferLength = 0; //used to store a temporary size of the buffer

//now, read through the input buffer and write the contents to the file

while ( (bufferLength = inputStream.read(buffer)) > 0 ) 

{

//add the data in the buffer to the file in the file output stream (the file on the sd card

fileOutput.write(buffer, 0, bufferLength);

//add up the size so we know how much is downloaded

downloadedSize += bufferLength;

int progress=(int)(downloadedSize*100/totalSize);

//this is where you would do something to report the prgress, like this maybe

//updateProgress(downloadedSize, totalSize);

}

//close the output stream when done

fileOutput.close();