用httpServer搭建http服務器
第一步activity-main.xml
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Button" />
第二步MainAtcivity.java
package com.example.downloadmp01;
import androidx.appcompat.app.AppCompatActivity;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
public class MainActivity extends AppCompatActivity {
private int fileLength;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = findViewById(R.id.button);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 響應事件
// Toast.makeText(MainActivity.this,"測試按鈕",Toast.LENGTH_SHORT).show();
new Thread(downloadRunn).start();
}
});
}
private Runnable downloadRunn = new Runnable(){
@Override
public void run() {
try {
String filepath="/sdcard/Download/mmmmm20200602.mp3";
String urlString="http://192.168.3.87:280/AA2020.mp3";
OutputStream output = new FileOutputStream("/sdcard/Download/ANewthefile.mp3");
URL url = new URL(urlString);
URLConnection connection = url.openConnection();
connection.connect();
fileLength = connection.getContentLength();
InputStream in = new BufferedInputStream(connection.getInputStream());
byte[] arr = readStream(in);
output.write(arr,0,fileLength);
output.flush();
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
};
public byte[] readStream(InputStream in) throws Exception{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte data[] = new byte[1024];
long total = 0;
int count;
while((count = in.read(data))!=-1){
total+=count;
bos.write(data,0,count);
}
bos.close();
in.close();
return bos.toByteArray();
}
}
第三步權限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
第四步到手機端app管理添加sdcard 存儲權限。
運行